SQL Server裡用Split函式分割字串

2021-06-18 11:33:11 字數 1472 閱讀 2313

這2天在寫儲存過程的時候發現sql裡沒有split函式很是不便,比如有時候儲存過程接受了乙個用逗號做分隔符的字串,就需要用到split了。本著不重複製造輪子的原則,先上網搜尋了一下,果然已經有兄弟實現了split方法並且無私共享了**。

create

function

dbo.

split

(@string

varchar

(8000

),@delimiter

char(1

))returns

@temptable

table

(items

varchar

(8000

))as

begin

declare

@idx

intdeclare

@slice

varchar

(8000

)select

@idx =1

iflen

(@string

)<

1 or

@string

isnull

return

while

@idx!=0

begin

set@idx

=charindex

(@delimiter

,@string)if

@idx!=0

set@slice

=left(

@string

,@idx -1

)else

set@slice

=@stringif(

len(

@slice

)>0)

insert

into

@temptable

(items

)values

(@slice

)set

@string

=right(

@string

,len

(@string)-

@idx)if

len(

@string)=

0 break

endreturn

end

只需要執行以上sql,將其儲存成名為split的table-valued function,就可以想c#一樣在sql裡使用split了,例子如下

select top 10 * from dbo.split(『chennai,bangalore,mumbai』,',』)

測試結果

最後感謝一下提供原始碼的兄弟,原文見split function in sql server to break comma-separated strings into table

SQL Server索引怎麼用

什麼是索引 拿漢語字典的目錄頁 索引 打比方 正如漢語字典中的漢字按頁存放一樣,sql server中的資料記錄也是按頁存放的,每頁容量一般為4k 為了加快查詢的速度,漢語字 詞 典一般都有按拼音 筆畫 偏旁部首等排序的目錄 索引 我們可以選擇按拼音或筆畫查詢方式,快速查詢到需要的字 詞 同理,sq...

SQL Server裡查詢表結構命令

環境 sql server 2008 r2 問題 查詢表結構命令 對mysql和oracle資料庫熟悉的朋友知道用desc就可以查詢一張表的結構,但是在sql server裡執行desc命令會報錯。desc student 關鍵字 desc 附近有語法錯誤。現提供兩條命令查詢表結構 1.sp hel...

SQL Server裡查詢表結構命令

環境 sql server 2008 r2 問題 查詢表結構命令 對mysql和oracle資料庫熟悉的朋友知道用desc就可以查詢一張表的結構,但是在sql server裡執行desc命令會報錯。desc student 關鍵字 desc 附近有語法錯誤。現提供兩條命令查詢表結構 1.sp hel...