Man*_*ngh 2 sql sql-server-2008
我正在使用以下查询将行转换为列
SELECT STUFF((SELECT NAME + ',' FROM TABLE1
FOR XML PATH('')),1,0,'') AS [ACCOUNT NAMES]
Run Code Online (Sandbox Code Playgroud)
表格中包含以下数据
NAME
-------------------
GURPREET & CO.
SIMRAN TRADERS
LABOUR & WELFARE
-------------------
Run Code Online (Sandbox Code Playgroud)
我想要像这样的输出
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]
Run Code Online (Sandbox Code Playgroud)
如果您确实要删除最后一个逗号,则应如下所示:
SELECT STUFF(
(SELECT ',' + NAME
FROM TABLE1
FOR XML PATH(''),type).value('.','nvarchar(max)'),1,1,'') AS [ACCOUNT NAMES]
Run Code Online (Sandbox Code Playgroud)
注意:问题是您使用的是几乎与Internet一样古老的通用模式,该模式没有考虑XML加密。FOR XML TYPE当通过再次提取时,使用说明符将保留原始文本.value, varchar(max)。
| 归档时间: |
|
| 查看次数: |
9875 次 |
| 最近记录: |