我需要一个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语句。比如