MySQL的; GROUP BY但仅当列不为空时

时间:2017-06-20 15:02:48

标签: mysql sql group-by

我有以下SQL查询:

SELECT * FROM my_table GROUP BY B,D,F;

如果某些行B为空并且D为空且F为空,则会将其分组为一行,其中所有三列均为空。< / p>

但我想要:如果一行的所有三列(B,D,F)都是空的,请不要将此行分组显示。

意思是:如果我有以下内容:

enter image description here

结果应为:

enter image description here

我该怎么做?

1 个答案:

答案 0 :(得分:2)

首先,您正在选择* with group by !!不确定这是否适合你。

无论如何,为了达到你想要的目的,试试这个

SELECT B,D,F
FROM your_table
WHERE NOT (B='' AND D='' AND F='')
GROUP BY B,D,F

UNION ALL

SELECT B,D,F
FROM your_table
WHERE B='' AND D='' AND F=''