データが「|」で区切られた単一の列を持つテーブルを返す関数を作成しました。
関数にパラメータを渡す場合の例funsplit('SAGAR|INDIA|MUMBAI','|')
次のように返されます
Item<Column Name>
SAGAR
INDIA
MUMBAI
私はそれが欲しい
COLUMN 1 COLUMN2 COLUMN3
-----------------------------
SAGAR INDIA MUMBAI
これが私の機能です
ALTER FUNCTION [dbo].[funSplit]
(
@sInputList Varchar(8000), -- List of delimited items
@sDelimiter VarChar(8000) = ',' -- delimiter that separates items
)
Returns @List Table (item VarChar(8000))
Begin
Declare @sItem VarChar(8000)
While CharIndex(@sDelimiter,@sInputList,0) <> 0
Begin
Select
@sItem=RTrim(LTrim(SubString(@sInputList,1,CharIndex(@sDelimiter,@sInputList,0)-1))),
@sInputList=RTrim(LTrim(SubString(@sInputList,CharIndex(@sDelimiter,@sInputList,0)+Len(@sDelimiter),Len(@sInputList))))
If Len(@sItem) > 0
Insert Into @List Select @sItem
End
If Len(@sInputList) > 0
Insert Into @List Select @sInputList -- Put the last item in
Return
End