mysql - SQL 选择不同但详尽的列

标签 mysql sql

我有一个包含 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/

相关文章:

javascript - 如何使用 javascript 警报删除记录

android - retrofit2 从mysql中获取数据并显示在listview上

mysql - SQL 查询选择除 'ignore_table' 中定义的记录之外的整个表

mysql - 计算列 MySQL 中的条目并显示计数

mysql - 比较mysql触发器中的字符串

php - 使用php从具有多个值的列中获取数据?

mysql - mysql中的select语句

php - 无法在虚拟机上运行 magento

SQL Server 多个 REPLACE with #temp 表

mysql - 在 MySQL 中选择 MIN 值后选择 MIN (MAX)