将Raws分成按第一列分组的单独列 [英] Raws into seperate columns grouped by first column
本文介绍了将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屋!
查看全文