繁体   English   中英

将行转换为一列SQL Server

[英]converting rows to one column sql server

我正在使用以下查询将行转换为列

SELECT STUFF((SELECT NAME + ',' FROM TABLE1
FOR XML PATH('')),1,0,'') AS [ACCOUNT NAMES]

表格中包含以下数据

NAME 
-------------------
GURPREET & CO.
SIMRAN TRADERS
LABOUR & WELFARE
-------------------

我想要像这样的输出

GURPREET&CO。,SIMRAN TRADERS,劳工和福利,

但是sql给出了输出

GURPREET&amp公司,SIMRAN贸易商,劳工和福利部,

如何删除和删除?

由于您在示例中保留了最后一个逗号,因此不需要STUFF,尤其是当您将其与参数,1,0,''一起使用时,这是一个空操作。

SELECT
    (SELECT NAME + ','
       FROM TABLE1
        FOR XML PATH(''),type).value('.','nvarchar(max)') AS [ACCOUNT NAMES]

如果您确实要删除最后一个逗号,则应如下所示:

SELECT STUFF(
    (SELECT ',' + NAME
       FROM TABLE1
        FOR XML PATH(''),type).value('.','nvarchar(max)'),1,1,'') AS [ACCOUNT NAMES]

注意:问题是您使用的是几乎与Internet一样古老的通用模式,该模式没有考虑XML加密。 当通过.value, varchar(max)再次提取时.value, varchar(max)使用FOR XML TYPE说明符将保留原始文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM