当前位置:首页 » 编程语言 » sql拆分字符串

sql拆分字符串

发布时间: 2023-11-28 12:49:40

sql拆分逗号分隔的字符串

1、首先点击新建查询按钮,新建一个查询。

❷ sql分割字符串查询,分组统计

首先掌握sql中分割字符串的方法:
declare @sql varchar(2000),@tsql nvarchar(max),@split varchar(100)
set @sql='1,3,5,6,8' --保存的字符
set @split=','--分隔符
select @tsql='select '''+replace(@sql,@split,''' union all select ''')+''''
exec(@tsql)
----完成之后将查询结果保存在一张临时表中。
然后使用 select count(*) , 字段名 from 表名 group by 字段名 就可以得到您想要的结果了。
希望对您有所帮助!

❸ 在SQL Server数据库中拆分字符串函数

SQL Server数据库中拆分字符串函数的具体方法

CREATE FUNCTION uf_StrSplit (@origStr varchar( ) 待拆分的字符串@markStr varchar( )) 拆分标记 如 RETURNS @splittable table( str_id varchar( ) NOT NULL 编号ID string varchar( ) NOT NULL 拆分后的字符串)ASBEGINdeclare @strlen int @postion int @start int @sublen int @TEMPstr varchar( ) @TEMPid intSELECT @strlen=LEN(@origStr) @start= @sublen= @postion= @TEMPstr= @TEMPid= if(RIGHT(@origStr )<>@markStr )beginset @origStr = @origStr + @markStrendWHILE((@postion<=@strlen) and (@postion != ))BEGINIF(CHARINDEX(@markStr @origStr @postion)!= )BEGINSET @sublen=CHARINDEX(@markStr @origStr @postion) @postion;ENDELSEBEGINSET @sublen=@strlen @postion+ ;ENDIF(@postion<=@strlen)BEGINSET @TEMPid=@TEMPid+ ;SET @TEMPstr=SUBSTRING(@origStr @postion @sublen);INSERT INTO @splittable(str_id string)values(@TEMPid @TEMPstr)IF(CHARINDEX(@markStr @origStr @postion)!= )BEGINSET @postion=CHARINDEX(@markStr @origStr @postion)+ ENDELSEBEGINSET @postion=@postion+ ENDENDENDRETURNEND

例如 select * from uf_StrSplit( )

输出结果

lishixin/Article/program/SQLServer/201311/22421

❹ SQL里有没有类似SPLIT的分割字符串函数

createfunctionf_split(@cvarchar(2000),@splitvarchar(2))

returns@ttable(colvarchar(20))

as

begin

while(charindex(@split,@c)<>0)

begin

insert@t(col)values(substring(@c,1,charindex(@split,@c)-1))

set@c=stuff(@c,1,charindex(@split,@c),'')

end

insert@t(col)values(@c)

return

end

go

select*fromdbo.f_split('dfkd,dfdkdf,dfdkf,dffjk',',')

dropfunctionf_split

col

--------------------

dfkd

dfdkdf

dfdkf

dffjk

(4)sql拆分字符串扩展阅读

巧用SQL内置函数分割字符串

createfunction[dbo].[fn_char_splitbystr](

@Stringnvarchar(4000),function

@Delimiternvarchar(100)

)

returns@ValueTabletable([FValue]nvarchar(4000),[FSerial]int)

as

begin

declare@valuenvarchar(4000),@valnvarchar(4000)

declare@NextStringnvarchar(4000),@Posint,@NextPosint,@CommaChecknvarchar(1),@idint

set@value=@String

set@id=1

set@NextString=''

set@CommaCheck=right(@value,1)

set@value=@value+@Delimiter+space(len(@Delimiter)-1)

set@Pos=charindex(@Delimiter,@value)

set@NextPos=1

while(@pos<>0)begin

set@NextString=substring(@value,1,@Pos-1)

set@val=@NextString

if@id>1set@val=substring(@val,len(@Delimiter),len(@val))

insertinto@ValueTable([FValue],[FSerial])VALUES(@val,@id)

set@value=substring(@value,@pos+1,LEN(@value))

set@NextPos=@Pos

set@pos=charindex(@Delimiter,@value)

set@id=@id+1

end

return

end

热点内容
python数组切片 发布:2025-08-22 15:45:39 浏览:240
便捷式存储什么意思 发布:2025-08-22 15:29:31 浏览:416
sql选择查询 发布:2025-08-22 15:24:52 浏览:234
python子线程异常 发布:2025-08-22 15:12:03 浏览:212
设置ftp用户名和密码 发布:2025-08-22 15:00:37 浏览:491
mss数据库 发布:2025-08-22 14:52:55 浏览:840
c语言多个c 发布:2025-08-22 14:51:17 浏览:579
我的世界服务器教程手机版网易 发布:2025-08-22 14:37:45 浏览:257
如何屏蔽安卓系统提示 发布:2025-08-22 14:25:29 浏览:889
编译程序的配置是什么意思 发布:2025-08-22 14:17:55 浏览:885