📅  最后修改于: 2023-12-03 14:52:52.580000             🧑  作者: Mango
在 SQL 中,我们经常需要查找具有空值的列,以便进行数据清洗或填充操作。下面介绍几种查找具有空值的列的方法。
使用 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 函数可以统计每列的空值数量。以下是示例代码:
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 表可以查询数据库的元信息,包括表和列的信息。以下是示例代码:
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 表可以查询具有空值的列信息和表信息。根据不同的需求和情况,选择合适的方法进行查询即可。