通过添加必要的列,将具有相同ID字段的多行组合成一行

时间:2013-06-25 22:00:55

标签: sql-server tsql rows

以下是我正在使用的已存储在表

中的内容
ParentID   ComputerName ProductCode
--------   ------------    ------------
117   AZ18LTDJBN2R1 EEADMIN_1000
117   AZ18LTDJBN2R1 EEGO____1000
117   AZ18LTDJBN2R1 EEPC
117   AZ18LTDJBN2R1 EPOAGENT3000
117   AZ18LTDJBN2R1 HOSTIPS_8000
117   AZ18LTDJBN2R1 PCR_____1000
117   AZ18LTDJBN2R1 SITEADV_3500
117   AZ18LTDJBN2R1 SUPPCLNT1000
117   AZ18LTDJBN2R1 VIRUSCAN8800

如何将这9行合并为1行,并为每个记录/产品代码添加列?

ParentID   ComputerName EEADMIN        EEGO            EEPC    EPOAgent        etc.   
--------   ------------    ------------  -------------   ------   ----------     ------
 117      AZ18LTDJBN2R1 EEADMIN_1000  EEGO____1000    EEPC     EPOAGENT3000    etc. 

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

这是一种方法:

select ParentId, ComputerName,
       max(case when ProductCode like 'EEADMIN%' then ProductCode end) as EEAdmin,
       max(case when ProductCode like 'EEGO%' then ProductCode end) as EEGO,
       max(case when ProductCode like 'EEPC%' then ProductCode end) as EEPC,
       . . .
from t
group by ParentId, ComputerName