如果想要在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, ',')
這樣就可以了,有需要的朋友可以試試看哦
留言列表