我需要一个sql查询,它从单个列值中检索多个列的结果

时间:2017-07-27 14:03:09

标签: sql pivot

表格结构如下:

diamond{
            width:65px;
            height:65px;
            border:3px solid #0E4991;
            transform: rotate(45deg);
        }

样本数据如下:

id |det_Id | Name | Value

我试图在一个SQL语句中将A,B,C作为单独的列返回。

我的预期输出是:

1 | 111 | A | Apple

2 | 111 | B | Ball

3 | 111 | C | Cat

4 | 222 | A | Air

5 | 222 | B | Badge

6 | 222 | C | Car

1 个答案:

答案 0 :(得分:1)

使用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小提琴:http://sqlfiddle.com/#!6/c02dd8/2/0