我需要一个sql查询,从一个列值中检索多个列的结果
表格结构如下:我需要一个sql查询,从一个列值中检索多个列的结果,sql,pivot,Sql,Pivot,表格结构如下: id |det_Id | Name | Value 1 | 111 | A | Apple 2 | 111 | B | Ball 3 | 111 | C | Cat 4 | 222 | A | Air 5 | 222 | B | Badge 6 | 222 | C | Car 样本数据如下: id |det_Id | Name | Value 1 | 111 | A | Apple 2 | 111 | B | Ball 3 | 111 | C | Cat 4
id |det_Id | Name | Value
1 | 111 | A | Apple
2 | 111 | B | Ball
3 | 111 | C | Cat
4 | 222 | A | Air
5 | 222 | B | Badge
6 | 222 | C | Car
样本数据如下:
id |det_Id | Name | Value
1 | 111 | A | Apple
2 | 111 | B | Ball
3 | 111 | C | Cat
4 | 222 | A | Air
5 | 222 | B | Badge
6 | 222 | C | Car
我试图在一条SQL语句中将A、B、C作为单独的列返回
我的预期产出是:
111 | Apple | Ball |Cat
222 | Air | Badge|Car
使用
PIVOT
功能
SELECT * FROM
(SELECT det_Id, Name, Value FROM yourtable) a
PIVOT
(MIN(Value) FOR Name IN ([A], [B], [C]))b
输出
det_Id A B C
111 Apple Ball Cat
222 Air Badge Car
SQL FIDLE:您使用的是什么dbms?您的第一种方法是在
det\u Id
上连接表本身。到目前为止你有试过什么吗?你在哪里被卡住了?这叫做支点。我试着用case语句。比如