SQL如何输出NULL
在SQL中,NULL代表缺失的值或未知的值。在数据库中,有时候会存在某些字段没有值,或者该值是未知的情况,这时候就会用NULL来表示。在SQL查询中,如果要输出NULL值,有一些方法可以实现。本文将详细介绍如何在SQL查询中输出NULL值。
创建测试表格
为了演示如何输出NULL值,首先我们需要创建一个测试用的表格。我们可以创建一个包含一些字段的表格,其中有一些字段的值是NULL。
CREATE TABLE students (
id INT,
name VARCHAR(50),
age INT,
grade CHAR(1)
);
INSERT INTO students (id, name, age, grade) VALUES
(1, 'Alice', 20, 'A'),
(2, 'Bob', NULL, 'B'),
(3, NULL, 25, 'C'),
(4, 'David', 22, NULL),
(5, 'Eve', 19, 'A');
以上SQL语句创建了一个名为students
的表格,其中包含了id
、name
、age
和grade
四个字段。并向表格中插入了五条数据,其中有些字段的值是NULL。
查询所有数据
首先我们可以通过简单的SELECT语句查询出表格中的所有数据,看一下NULL值的情况。
SELECT * FROM students;
运行以上查询语句,我们可以得到如下结果:
+----+-------+------+-------+
| id | name | age | grade |
+----+-------+------+-------+
| 1 | Alice | 20 | A |
| 2 | Bob | NULL | B |
| 3 | NULL | 25 | C |
| 4 | David | 22 | NULL |
| 5 | Eve | 19 | A |
+----+-------+------+-------+
可以看到,表格中的数据已经成功显示出来,包括了NULL值。
使用IS NULL和IS NOT NULL条件
如果我们想要筛选出含有NULL值的记录或者不含NULL值的记录,可以使用IS NULL
和IS NOT NULL
条件来实现。
筛选出含有NULL值的记录
下面的查询语句将会筛选出age
字段值为NULL的记录:
SELECT * FROM students WHERE age IS NULL;
运行以上查询语句,可以得到如下结果:
+----+------+-----+-------+
| id | name | age | grade |
+----+------+-----+-------+
| 2 | Bob | NULL| B |
+----+------+-----+-------+
筛选出不含NULL值的记录
下面的查询语句将会筛选出name
字段值不为NULL的记录:
SELECT * FROM students WHERE name IS NOT NULL;
运行以上查询语句,可以得到如下结果:
+----+------+-----+-------+
| id | name | age | grade |
+----+------+-----+-------+
| 1 | Alice| 20 | A |
| 4 | David| 22 | NULL |
| 5 | Eve | 19 | A |
+----+------+-----+-------+
利用IS NULL
和IS NOT NULL
条件可以轻松地筛选出含有或不含有NULL值的记录。
使用IFNULL函数
在一些情况下,我们可能希望将NULL值替换为特定的值。这时可以使用IFNULL
函数来实现。
下面的查询语句将会将grade
字段中的NULL值替换为’Unknown’:
SELECT id, name, age, IFNULL(grade, 'Unknown') AS grade FROM students;
运行以上查询语句,可以得到如下结果:
+----+------+-----+---------+
| id | name | age | grade |
+----+------+-----+---------+
| 1 | Alice| 20 | A |
| 2 | Bob | NULL| B |
| 3 | NULL | 25 | C |
| 4 | David| 22 | Unknown |
| 5 | Eve | 19 | A |
+----+------+-----+---------+
可以看到,grade
字段中的NULL值已经被替换为’Unknown’。
使用COALESCE函数
另外一个函数用来处理NULL值的方法是使用COALESCE
函数。COALESCE
函数接受多个参数,返回参数列表中的第一个非NULL值。
下面的查询语句将会将age
字段中的NULL值替换为0:
SELECT id, name, COALESCE(age, 0) AS age, grade FROM students;
运行以上查询语句,可以得到如下结果:
+----+------+-----+-------+
| id | name | age | grade |
+----+------+-----+-------+
| 1 | Alice| 20 | A |
| 2 | Bob | 0 | B |
| 3 | NULL | 25 | C |
| 4 | David| 22 | NULL |
| 5 | Eve | 19 | A |
+----+------+-----+-------+
可以看到,age
字段中的NULL值已经被替换为0。
结语
在SQL查询中,输出NULL值是一种常见的操作。通过本文的介绍,你已经学会了如何在SQL查询中输出NULL值,并且了解了一些处理NULL值的常用函数。