2016-05-16 79 views
2

什么是在一组列中查找具有空值的记录的好方法?有点像mysql查询多个列的值

"Select all rows where null IN(col6, col7, col8, col9, col10)" 

我必须对每列进行比较吗?

+0

如果(i)一列不为空(ii)所有列都为空,预期结果是什么? –

回答

2
where greatest(col6, col7, col8, col9, col10) is null 
+0

聪明有效。这似乎利用了NULL不大于或小于任何实际值的事实,因此它每次都出现在顶端。 – tadman

+0

不错。我想知道为什么'NULL'总是最好的()。似乎以我想要的方式工作:http://sqlfiddle.com/#!9/eb642c/3 – doub1ejack

+0

NULL不是最大的。如果任何参数为NULL,结果只是未定义。如果结果未定义,则返回NULL(不是值)。 CONCAT()也可以工作。可能还有其他一些功能灵活的参数。 –

0

不是很优雅,但也不是你必须使用的数据库结构。

Select all rows where col6 is null or col7 is null or col8 is null or coll9 is null or ...