我有一张桌子,例如:
table a
+------+-------+
| v1 | v2 |
+------+-------+
| 1 | one |
| 2 | two |
| 3 | two |
| 4 | two |
| 5 | NULL |
| 6 | NULL |
| 7 | three |
| 8 | three |
+------+-------+
Run Code Online (Sandbox Code Playgroud)
我想按列“v2”对该表中的数据进行分组...
mysql> select * from a group by v2 order by v1;
+----+-------+
| v1 | v2 |
+----+-------+
| 1 | one |
| 2 | two |
| 5 | NULL |
| 7 | three |
+----+-------+
Run Code Online (Sandbox Code Playgroud)
...但将 NULL 值保留在单独的行上。是否可以防止 NULL 值折叠成一行?
这将完成您的要求:
select min(v1) as v1, v2 from a group by v2, ifnull(v2, v1) order by v1;
Run Code Online (Sandbox Code Playgroud)
这将 group by v2,除非它是NULL,在这种情况下它将 group by v1。由于您的两个NULL值对于 有两个不同的值v1,因此会将它们分开。
| 归档时间: |
|
| 查看次数: |
1517 次 |
| 最近记录: |