sql - 缓存 SQL 查询以从多条记录中创建 1 行
问题描述
我有以下记录并想创建 1 行记录。我尝试了 STUFF,FOR XML PATH 并没有工作
+-----------+-------+---------+
| CLIENT_ID | Event | DX_Code |
+-----------+-------+---------+
| 54 | 5 | F45.72 |
| 54 | 5 | X45.34 |
| 54 | 5 | M98.32 |
+-----------+-------+---------+
输出 = 54, 5, F45.72 X45.34 M98.32
解决方案
您可以使用STUFF()
with FOR XML PATH('')
as来做到这一点
CREATE TABLE T
([CLIENT_ID] int, [Event] int, [DX_Code] varchar(6))
;
INSERT INTO T
([CLIENT_ID], [Event], [DX_Code])
VALUES
(54, 5, 'F45.72'),
(54, 5, 'X45.34'),
(54, 5, 'M98.32')
;
SELECT DISTINCT T1.[CLIENT_ID],
T1.[Event],
STUFF(
(
SELECT ',' + T2.[DX_Code]
FROM T T2
WHERE T2.[CLIENT_ID] = T1.[CLIENT_ID]
AND T2.[Event] = T1.[Event]
FOR XML PATH ('')
) , 1, 1, ''
) Result
FROM T T1;
推荐阅读
- hyperledger-fabric - 如何在链码中编写一个函数来简单地计算总记录并返回总数。hyperledger 结构
- python - 为什么 python 中的 PanelOLS 与 R 中的 plm 有不同的结果
- postgresql - Loopback 4 unable to connect to Postgres 13
- keyboard - Forward slash key not working in VS2019 code editor
- java - Cucumber examples pulled through literally and not using the values - no such element: Unable to locate element:
- javascript - How to check if any value was changed in an editable Object without using FormGroup?
- google-apps-script - 谷歌文档更新时如何向当前经理发送电子邮件?
- python - 为什么我的 PC 会生成无效的像素数量?
- haskell - 有没有办法在 IO monad 之外获取 optparse-aplicative 解析器的使用块
- reactjs - 在 Netify 中从 package.json 运行两个脚本