示例:选择某列不为空的所有行
假设我们有一个名为`students`的表格,里面包含了`name`(姓名)和`email`(电子邮件)两个字段。如果我们想要选择出那些电子邮件信息不为空的学生记录,我们可以这样写SQL语句:
```sql
SELECT *
FROM students
WHERE email IS NOT NULL;
```
这条语句选择了`students`表中所有`email`字段不为空的记录。
其他应用场景
- 结合其他条件: 你还可以将`IS NOT NULL`与其他条件一起使用来进一步过滤结果。例如,若要选择所有有电子邮件且姓名为"John Doe"的学生:
```sql
SELECT *
FROM students
WHERE name = 'John Doe' AND email IS NOT NULL;
```
- 使用在JOIN操作中: 在进行表连接(JOIN)操作时,也可以用`IS NOT NULL`来排除那些在关联表中没有对应值的记录:
```sql
SELECT s.*
FROM students s
JOIN orders o ON s.student_id = o.student_id
WHERE o.date IS NOT NULL;
```
此查询选择那些至少有一条订单日期不为空的学生记录。
注意事项
- `IS NOT NULL` 检查的是字段是否含有NULL值,它不能用于检测空字符串或者零值,这些情况在数据库中是被视为有效值的。
- 对于文本类型的字段,空字符串("")和NULL是不同的,前者表示一个长度为零的字符串,而后者表示没有值。
- 类似地,对于数值字段,零(0)是一个有效的数值,而NULL表示字段没有值。