2011-03-11 100 views
0

如何拆分存儲過程中的文本。在存儲過程中拆分文本

CREATE PROCEDURE 
(
    @ArrayList nvarchar(1000) 
) 
BEGIN 

    --I want to split @ArrayList. That is contains string. ex '1,2,3,4,5,6...' 

END 
+0

存儲過程MS-SQL – zanhtet 2011-03-11 03:42:36

+1

類似的東西** **應被反射在您選擇的標籤中!只是「存儲過程」不是很有幫助.....另外:哪些**版本的SQL Server? – 2011-03-11 05:54:30

+0

另外:像這樣的東西已經被問了一大堆次數 - 在詢問再見之前,你應該** **先搜索** - 參見例如。 http://stackoverflow.com/questions/1432623/sql-server-2005-function-split-string-into-decimals或http://stackoverflow.com/questions/2866168/sql-split-function-that-handles- string-with-delimeter-showing-between-text-qual或者在這裏查看整個列表:http://stackoverflow.com/search?q=sql+server+split+text – 2011-03-11 05:56:34

回答

1
declare @ArrayList nvarchar(1000) = '1,2,3,4,5,6' 

declare @XMLList xml 
set @XMLList = cast('<I>'+replace(@ArrayList, ',', '</I><I>')+'</I>' as xml) 
select 
    I.value('.', 'int') as Value 
from @XMLList.nodes('I') as I(I) 
0

使用應該使用如下方法XML PATH

SELECT STUFF(
      (SELECT TOP 10 ',' + STOCKNO FROM ItemMaster FOR XML PATH('')), 1, 1, '' 
) as Data 

結果:

Data 
150200006,150200010,150200014,150200018,150200021,150200025,150400078,150400082,150200005,150200009