WITH Numbers AS (SELECT Table.ProductNumber FROM Table WITH (NOLOCK))
返回ProductNumber像1,2,3,4,5-有些是逗号分隔,所以我想分裂和比做适当SELECT对他们有WHERE
1
2
3,4,5
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哪一行在哪一行
Numbers
ProductNumber
查询中的问题是您assigning将转换xml为a variable,但此处仅将最后一行存储在其中variable。
assigning
xml
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)