gpt4 book ai didi

sql - 将行转换为一列sql server

转载 作者:行者123 更新时间:2023-12-02 07:38:49 25 4
gpt4 key购买 nike

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

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, LABOUR & WELFARE,

但是给定输出的sql

GURPREET &amp CO., SIMRAN TRADERS, LABOUR &amp WELFARE,

如何删除 &?

最佳答案

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

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 实体化。使用 FOR XML TYPE 说明符在通过 .value, varchar(max) 再次提取时保留原始文本。

关于sql - 将行转换为一列sql server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13391950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com