📜  如何在sql中查找具有空值的列(1)

📅  最后修改于: 2023-12-03 14:52:52.580000             🧑  作者: Mango

如何在 SQL 中查找具有空值的列

在 SQL 中,我们经常需要查找具有空值的列,以便进行数据清洗或填充操作。下面介绍几种查找具有空值的列的方法。

方法一:使用 IS NULL 运算符

使用 IS NULL 运算符可以查找具有空值的列。以下是示例代码:

SELECT *
FROM table_name
WHERE column_name IS NULL;

其中,table_name 为表名,column_name 为列名,使用 IS NULL 运算符可以查找具有空值的列。

如果要查找多个列,可以使用 OR 运算符来连接多个条件:

SELECT *
FROM table_name
WHERE column_name1 IS NULL
   OR column_name2 IS NULL
   OR column_name3 IS NULL;
方法二:使用 COUNT 函数

使用 COUNT 函数可以统计每列的空值数量。以下是示例代码:

SELECT COUNT(*) AS null_count
FROM table_name
WHERE column_name IS NULL;

其中,table_name 为表名,column_name 为列名,使用 COUNT 函数并指定列名可以统计该列的空值数量。

如果要查找多个列的空值数量,可以使用 UNION 运算符来连接多个查询:

SELECT COUNT(*) AS null_count, 'column_name1' AS column_name
FROM table_name
WHERE column_name1 IS NULL
UNION
SELECT COUNT(*) AS null_count, 'column_name2' AS column_name
FROM table_name
WHERE column_name2 IS NULL
UNION
SELECT COUNT(*) AS null_count, 'column_name3' AS column_name
FROM table_name
WHERE column_name3 IS NULL;
方法三:使用 INFORMATION_SCHEMA 表

使用 INFORMATION_SCHEMA 表可以查询数据库的元信息,包括表和列的信息。以下是示例代码:

SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'database_name'
  AND IS_NULLABLE = 'YES';

其中,database_name 为数据库名,使用 INFORMATION_SCHEMA.COLUMNS 表可以查询具有空值的列信息。

如果要查询具有空值的多个表的信息,可以使用 INNER JOIN 连接多个表:

SELECT c.TABLE_NAME, c.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS c
INNER JOIN INFORMATION_SCHEMA.TABLES t
ON c.TABLE_NAME = t.TABLE_NAME
WHERE c.TABLE_SCHEMA = 'database_name'
  AND IS_NULLABLE = 'YES'
  AND t.TABLE_TYPE = 'BASE TABLE';
总结

以上是几种查找具有空值的列的方法。使用 IS NULL 运算符可以查找具有空值的列,使用 COUNT 函数可以统计每列的空值数量,使用 INFORMATION_SCHEMA 表可以查询具有空值的列信息和表信息。根据不同的需求和情况,选择合适的方法进行查询即可。