[英]SQL Select for unique value in a column
I have a table like 我有一张桌子
| ID | COL1 | COL2 |
| 1 | 1 | w |
| 1 | 2 | x |
| 2 | 1 | y |
| 2 | 2 | z |
When I query it, I'd like to get 当我查询它时,我想得到
| ID | COL2:1 | COL2:2 | <--- (when COL1=1 and COL1 =2)
| 1 | w | x |
| 2 | y | z |
I've tried GROUP BY
and JOIN
for the same table but I get duplicates and not grouped data. 我已经为同一个表尝试了
GROUP BY
和JOIN
,但是我得到了重复项而不是分组数据。 I need some pointers for how to get the results I'm expecting. 我需要一些指导,以了解如何获得我期待的结果。
You can use MAX()
and a CASE
statement for this: 您可以使用
MAX()
和CASE
语句:
SELECT ID
,MAX(CASE WHEN Col1 = 1 THEN Col2 END) AS Col2_1
,MAX(CASE WHEN Col1 = 2 THEN Col2 END) AS Col2_2
FROM YourTable
GROUP BY ID
Demo: SQL Fiddle 演示: SQL小提琴
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.