當前位置:首頁 » 編程語言 » 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

熱點內容
中國移動智能寬頻如何配置 發布:2025-01-25 11:59:01 瀏覽:774
安卓手機定時關機如何設置 發布:2025-01-25 11:50:06 瀏覽:318
數組緩存區 發布:2025-01-25 11:17:00 瀏覽:875
安卓手機鍵盤上浮怎麼調回來 發布:2025-01-25 11:17:00 瀏覽:260
editplusjava編譯 發布:2025-01-25 11:11:56 瀏覽:232
手機迅雷加密安卓 發布:2025-01-25 10:39:00 瀏覽:211
hdmi源碼功放 發布:2025-01-25 10:38:57 瀏覽:598
linux賬戶被鎖 發布:2025-01-25 10:31:27 瀏覽:235
安卓微信語音來電鈴聲怎麼用自己的原聲 發布:2025-01-25 10:04:03 瀏覽:826
mac文件夾設置 發布:2025-01-25 09:56:06 瀏覽:389