如果想要在sql server中切割一個欄位中的字串
ex: D1,D2,D6,A9

結果想要為
D1
D2
D6
D9
的話,怎麼做呢?在網路上有找到高手有解答,因此先log下來,以後可以用的到..

首先建立一個function

 

CREATE FUNCTION dbo.SplitString
(
@SplitStr nvarchar(1000),
@SplitChar nvarchar(5)
)
RETURNS @RtnValue table
(
Data nvarchar(50)
)
AS
BEGIN
Declare @Count int
Set @Count = 1

While (Charindex(@SplitChar,@SplitStr)>0)
Begin
Insert Into @RtnValue (Data)
Select
Data = ltrim(rtrim(Substring(@SplitStr,1,Charindex(@SplitChar,@SplitStr)-1)))

Set @SplitStr = Substring(@SplitStr,Charindex(@SplitChar,@SplitStr)+1,len(@SplitStr))
Set @Count = @Count + 1
End

Insert Into @RtnValue (Data)
Select Data = ltrim(rtrim(@SplitStr))

Return
END

 


可測試的sql

select * from SplitString('1,22,333,444,5555,666', ',')

--建立一個變數
declare @str varchar(1000)
--將字串的最後一個,去掉
select @str=substring(col,1,len(col)-1) from table1 where key='123'
--呼叫splitstring這個function
select data from SplitString(@str, ',')

這樣就可以了,有需要的朋友可以試試看哦



arrow
arrow
    全站熱搜

    丫德 發表在 痞客邦 留言(0) 人氣()