我有一个名为TEST的表。一些字段具有空值。
我需要显示只有一个NULL的项目。
因此输出应为:
我有一个比较愚蠢的解决方案,就是比较所有可能的列对并检查是否为空。
就像这样:
Country City Street House
US NULL Avenue 14
UK London NULL 15
NULL NULL NULL NULL
NULL NULL Central 16
我需要显示只有一个NULL的项目。
因此输出应为:
Country City Street House
US NULL Avenue 14
UK London NULL 15
我有一个比较愚蠢的解决方案,就是比较所有可能的列对并检查是否为空。
就像这样:
SELECT * FROM TEST
WHERE NOT (
(country='NULL' AND city='NULL')
OR (country='NULL' AND street='NULL')
OR (coutry='NULL' AND house='NULL')
OR (city='NULL' AND street='NULL')
OR (city='NULL' AND house='NULL')
OR (street='NULL' AND house='NULL')
)
它可以工作,但要了解这是非常低效的。
你能推荐更加优雅的解决方案吗?
country IS NULL
而不是country = 'NULL'
,因为null不是一个字符串,而是一个非常特殊的值。您还应该在标签中明确说明您使用的是mysql还是ms sql,它们具有不同的语法。 - Asenar