WITH Numbers AS (SELECT Table.ProductNumber FROM Table WITH (NOLOCK))
返回类似1
,2
,3,4,5
的ProductNumber - 有些是以逗号分隔的,所以我想分割,而不是SELECT
对它们进行适当的WHERE
}
到目前为止我得到的是:
SELECT @XML = CONVERT(xml,'<root><s>' + REPLACE(Numbers , ',' ,'</s><s>') + '</s></root>')
SELECT [ProductNumber ] = T.c.value('.','varchar(60)') FROM @XML.nodes('/root/s') T(c)
但是我不知道如何将选定的SQL资源Numbers
转换为字符串以进行XML转换,而不是松散跟踪ProductNumber
在哪一行
答案 0 :(得分:1)
您的查询中的问题是assigning
转换为xml
到variable
,但此处只有最后一行将存储在variable
中。
尝试这样的事情。
SELECT Split.a.value('.', 'VARCHAR(100)') splt_num
FROM (SELECT Cast ('<M>'
+ Replace(ProductNumber, ',', '</M><M>')
+ '</M>' AS XML) AS Data
FROM yourtable) AS A
CROSS APPLY Data.nodes ('/M') AS Split(a)