sql 使用XML拆分MS SQL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 使用XML拆分MS SQL相关的知识,希望对你有一定的参考价值。

DECLARE @IDs NVARCHAR(300)  = '1,2,3,4,5,6,7' ,
    @Split CHAR(1) = ',' ,
    @X XML;

-- Style 1
SELECT  @X = CONVERT(XML, ' <root> <s>'
        + REPLACE(@IDs, @Split, '</s> <s>')
        + '</s>   </root> ');
SELECT @X;
-- [ Mid Format ]
-- <root><s>1</s>...<s>7</s></root>

SELECT  [Value] = T.c.value('.', 'varchar(20)')
FROM    @X. nodes('/root/s') T ( c );


-- OR Style 2
SELECT  T2.item.value('(./text())[1]', 'int') [Value]
FROM ( SELECT CONVERT(XML, '<items><t>' + 
              REPLACE(@IDs, ',', '</t><t>') +
              '</t></items>') AS xmldoc
        ) AS xmltable
CROSS APPLY 
      xmltable.xmldoc.nodes('/items/t') AS T2 ( item );

-- [ OUTPUT ]
-- Value
-- 1
-- 2
-- 3
-- 4
-- 5
-- 6
-- 7

以上是关于sql 使用XML拆分MS SQL的主要内容,如果未能解决你的问题,请参考以下文章

sql SQL:使用XML拆分字符串

在 SQL 中使用 xml 标签拆分字符串

MS SQL 拆分逗号并检索字段

MS SQL 拆分逗号并检索字段

编辑器中的 ms-access VBA 长 sql 查询字符串行拆分(内联双引号)

MS-Access/SQL 拆分:如果我将其移动到不同的文件夹,前端安全性会发生变化