SQL Server將一段字串根據特定分隔符轉換成一個表變數
阿新 • • 發佈:2020-11-18
在sql server裡,呼叫儲存過程時,經常需要將資料拼成字串做為引數呼叫儲存過程方便批量資料一次性呼叫,而在儲存過程中分割字串雖然簡單但麻煩,在這裡我們封裝了dbo.Fn_convertstringtotablestring函式,可以將拼串分割成記憶體表返回,方便使用。
/* ** 將一個字串轉換成一個表變數。strvalue為字元形式 **/ create function [dbo].[Fn_convertstringtotablestring] (@String varchar(8000),--要轉換的字串。 @Separatorvarchar(10) = ',' --分隔符。 ) returns @Table table( strvalue varchar(500), seq int identity(1, 1)) as begin set @String = @String+@Separator while Charindex(@Separator, @String)>0 begin insert into @Table (strvalue) values (Substring(@String, 1, Charindex(@Separator, @String)-1)) select @String=Substring(@String, Charindex(@Separator, @String)+1, Len(@String)-Charindex(@Separator, @String)) end return end
呼叫dbo.Fn_convertstringtotablestring函式
SELECT * FROM dbo.Fn_convertstringtotablestring('SN1232224,SN3123131,SN4142321,SN9892278',',')
結果: