【发布时间】:2017-07-14 08:24:53
【问题描述】:
如果我的文字不对齐,我会附上屏幕截图:Undesired Results.
我有一张带有 client_id 和多行药物的表格。我想将每位客户的所有药物插入一个逗号分隔的字段中。
我的桌子是这样的:
===================
|Client__ID|DESC |
|==========|=======|
|500011 |Plavix |
|----------|-------|
|500011 |Zocor |
|----------|-------|
|500011 |aspirin|
|----------|-------|
|500006 |aspirin|
|----------|-------|
|500006 |Plavix |
|----------|-------|
|500006 |Zocor |
|----------|-------|
===================
我想要的输出如下所示:
========================================
|Client__ID|DESC |MEDS_COMB |
|==========|=======|====================|
|500011 |aspirin|Plavix,Zocor,aspirin|
|----------|-------|--------------------|
|500006 |aspirin|Plavix,Zocor,aspirin|
|----------|-------|--------------------|
========================================
我的实际结果是这样的:
========================================
|Client__ID|DESC |MEDS_COMB |
|==========|=======|====================|
|500011 |aspirin|NULL |
|----------|-------|--------------------|
|500006 |aspirin|NULL |
|----------|-------|--------------------|
========================================
这是我目前写的查询:
SELECT [CLIENT_ID]
, [DESC]
, (STUFF((SELECT CAST(',' + [DESC] AS VARCHAR(MAX))
FROM [AZCLMED]
WHERE (CLIENT_ID = [AZCLMED].CLIENT_ID) AND END_DATE IS NULL
FOR XML PATH ('')), 1, 2, '')) AS MEDS_COMB
FROM [AZCLMED]
ORDER BY [CLIENT_ID] ASC
【问题讨论】:
标签: tsql sql-server-2005