SQL中如何查找Movie表内含有一个或多个NULL值的列
查询Movie表含NULL值列的实现方案
目标说明
定位Movie表中所有存在至少1条NULL值记录的列,返回对应的列名列表,匹配当前IMDb场景下Movie表的NULL分布特征。
具体实现
- 针对教学演示场景的小表,可直接逐列做存在性判断:只要某列存在任意1条NULL记录,就输出对应列名,使用
LIMIT 1避免不必要的全表扫描,参考语句:SELECT 'Country' AS target_column FROM Movie WHERE Country IS NULL LIMIT 1 UNION ALL SELECT 'Languages' AS target_column FROM Movie WHERE Languages IS NULL LIMIT 1 UNION ALL SELECT 'Production_company' AS target_column FROM Movie WHERE Production_company IS NULL LIMIT 1;说明:Movie表中其余字段(ID、Title、Year、Date_published、Duration、Worldwide_gross_income)不存在NULL值,对应判断分支不会返回结果,最终输出不会包含这些列。
- 针对生产环境的大表场景,不建议逐列全表扫描,可直接读取数据库内置的元数据统计信息获取列的NULL分布,大幅降低查询开销。
预期返回结果
执行匹配场景的查询后,会输出无重复的列名集合:
CountryLanguagesProduction_company
完全匹配已知的Movie表NULL列分布情况。
内容的提问来源于stack exchange,提问作者Naman Arora
相关产品推荐
相关产品推荐

