【发布时间】:2026-01-20 10:15:02
【问题描述】:
我的列有一个工作脚本,到目前为止一切顺利,问题是 - 我如何隐藏那些 x 和 y 列?有什么办法吗?
我想要得到的结果是 - 仅显示 Z 列。如果我只是在第一行添加注释,它将无法正常工作并出现 xml 路径错误。
SELECT
C1S_PATIENTGROUP.PG_K AS [x],
C1S_PATIENTGROUP.NAME AS [y],
SUBSTRING((SELECT ','+ [PatGroup].[PG_K] AS [text()]
FROM D3_HOSPPATGROUPS [Hosp]
INNER JOIN C1S_PATIENTGROUP [PatGroup] ON [Hosp].[PG_ID] = [PatGroup].[PG_ID]
WHERE [Hosp].[HOSP_ID] = [card identificator]
FOR XML PATH ('')), 2, 1000) AS [z]
FROM
Z1_RPT_VIEW_15
LEFT OUTER JOIN
D3_HOSPPATGROUPS ON Z1_RPT_VIEW_15.[card identificator] = D3_HOSPPATGROUPS.HOSP_ID
LEFT OUTER JOIN
C1S_PATIENTGROUP ON C1S_PATIENTGROUP.PG_ID = D3_HOSPPATGROUPS.PG_ID
【问题讨论】:
-
您使用的是哪个 SQL Server 版本?在 SQL Server 2017 及更高版本中,您可以改用
STRINGG_AGG -
如果从
SELECT中删除C1S_PATIENTGROUP.PG_K AS [x], C1S_PATIENTGROUP.NAME AS [y],,我不会收到错误消息 -
仅供参考,如果您想删除字符串的第一个字符,
STUFF更适合。 -
哦,感谢大家提供如此出色的解决方案。会想办法的。我不知道这个添加东西的解决方案,会读到这个。谢谢!
标签: sql-server xml concatenation multiple-columns