将Raws分成按第一列分组的单独列 [英] Raws into seperate columns grouped by first column

查看:81
本文介绍了将Raws分成按第一列分组的单独列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

从下面:

DECLARE @table1 TABLE
(
    [ID] INT,
    [Code] CHAR(1)
);

INSERT INTO @table1
VALUES
(1, 'A'),
(1, 'B'),
(1, 'B'),
(2, 'A'),
(2, 'A'),
(3, 'A'),
(3, 'B'),
(3, 'B'),
(3, 'D');

select * from @table1;

我想取得成果:

它表示按ID分组的每个代码的新列(这意味着对于大多数ID,某些列将为空)。

我将不胜感激 J

I would appreciate any suggestion on thatJ

问候,

Arek

推荐答案



选择ID,
  MAX(CASE WHEN = 1,代码='A'那么代码 

      ; WHEN id = 2且code ='A'THEN code 

  WHEN id = 3且code ='A'那么代码&n bsp;  END)Code1,

  MAX(例如,当id = 1且代码='B'那么代码 

         当id = 2且code ='B'那么代码 

 当id = 3且code ='B'那么代码    END)Code2,

  MAX(例如,当id = 1且代码='D'那么代码 

     当id = 2且code ='D'THEN code 

  WHEN id = 3且code ='D'THEN代码   END)Code3

 来自@ table1

  group by id

select id,
 MAX(CASE WHEN id=1 and code='A' THEN code 
          WHEN id=2 and code='A' THEN code 
  WHEN id=3 and code='A' THEN code   END ) Code1,
 MAX(CASE WHEN id=1 and code='B' THEN code 
          WHEN id=2 and code='B' THEN code 
  WHEN id=3 and code='B' THEN code   END ) Code2,
 MAX(CASE WHEN id=1 and code='D' THEN code 
          WHEN id=2 and code='D' THEN code 
  WHEN id=3 and code='D' THEN code   END ) Code3
 from @table1
 group by id


这篇关于将Raws分成按第一列分组的单独列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆