這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...