我有下表
1 a 10
1 b 11
2 a 4
2 b 8
3 a 5
3 b 4
我想将表格重新排列为以下表格
1 10 11
2 4 8
3 5 4
第二列的名称为“a”,第三列的名称为“b”。 这可能吗? 我正在迈出SQL的第一步。感谢您的支持。
答案 0 :(得分:1)
我假设如下:表名为MyTable
,其中包含以下列:ID
,Col2
,Col3
。
select ID,
max(case when Col2 = 'a' then Col3 end) AS A,
max(case when Col2 = 'b' then Col3 end) AS B
from MyTable
group by ID
答案 1 :(得分:0)
尝试简单的方法:
DECLARE @TABLE TABLE(ID INT, NAME VARCHAR(1), VALUE INT)
INSERT INTO @TABLE VALUES(1,'a',10)
INSERT INTO @TABLE VALUES(1,'b',11)
INSERT INTO @TABLE VALUES(2,'a',4)
INSERT INTO @TABLE VALUES(2,'b',8)
INSERT INTO @TABLE VALUES(3,'a',5)
INSERT INTO @TABLE VALUES(3,'b',4)
SELECT ID
,MAX(CASE WHEN NAME='a' THEN VALUE END) Value1
,MAX(CASE WHEN NAME='b' THEN VALUE END) Value2
FROM @TABLE
GROUP BY ID
<强>输出:强>
ID Value1 Value2
1 10 11
2 4 8
3 5 4