我有一个包含 2 列的简单表格:
Col1 | Col2
-----+-----
1 | 3
1 | 4
2 | 3
2 | 4
... many more rows
我想返回:
Col1 | Col2
-----+-----
1 | 3
2 | 4
我不想要这个:
Col1 | Col2
-----+-----
1 | 3
2 | 3
因为 3 在 Col2 中重复,这个也不是
Col1 | Col2
-----+-----
1 | 3
1 | 4
因为 1 在 Col1 中重复,这个也不是
Col1 | Col2
-----+----
1 | 3
因为现在 Col2 中缺少 4。换句话说,我不想要重复项,但我也不想省略 col2 中的任何值(除非 Col1 中出现重复项 - 反之亦然)。如何使用 SQL 来完成我想要的事情?谢谢。
最佳答案
它按照您给定的示例数据工作
select col1,
case
when col1 =1 and col2 in (3,4) Then 3
when col1 =2 and col2 in (3,4) Then 4
end as col2
from table1
group by col1
有关更多详细信息,请访问此处 sql fiddle
关于mysql - SQL 选择不同但详尽的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35742277/