SQL is null, SQL is not null
时间:2020-02-23 14:32:29 来源:igfitidea点击:
有时我们有允许空值的列。
在这种情况下,SQL IS NULL是一个非常有用的运算符。
SQL IS NULL运算符用于检查列的值是否为null。
运算符根据空列值过滤结果集。
让我们详细讨论一下IS NULL运算符。
SQL IS NULL
让我们快速了解一下SQL是null运算符语法。
SELECT Column(s) FROM table_name WHERE column IS NULL;
上面的查询将为我们提供结果集,其中指定的列值为null。
通过一些示例,我们将更详细地理解上述语法。
让我们考虑以下学生表格作为示例。
RollNo | StudentName | StudentGender | StudentAge | StudentPercent |
---|---|---|---|---|
1 | George | M | 14 | 85 |
2 | Monica | F | 12 | 88 |
3 | Jessica | F | null | 84 |
4 | Tom | M | null | 78 |
方案:获取年龄为零的学生的百分比。
SELECT StudentPercent FROM Student WHERE StudentAge IS NULL;
输出:
StudentPercent |
---|
88 |
78 |
Oracle空字符串等效于NULL
空值不仅限于Oracle数据库中的null关键字,实际上,使用IS NULL运算符时,具有空值的列也被视为空值。
请注意,这些列类型应为VARCHAR而不是CHAR。
对于PostgreSQL数据库,我们发现了类似的行为,但在MySQL数据库中却没有。
因此,这似乎是数据库特定的行为。
让我们考虑以下"供应商"表作为示例。
ProductId | ProductName | SupplierName |
---|---|---|
1 | Cookie | ABC |
2 | Cheese | |
3 | Chocolate | |
4 | Jam | XDE |
场景:获取没有供应商名称的产品名称。
SELECT ProductName FROM Supplier WHERE SupplierName IS NULL;
输出:
ProductName |
---|
Cheese |
Chocolate |
SQL IS NOT NULL语句
如果WHERE子句中使用的列包含非null值,则使用SQL IS NOT NULL运算符过滤结果。
让我们详细讨论一下IS NOT NULL运算符。
语法:
SELECT Column(s) FROM table_name WHERE Column IS NOT NULL;
在上面的语法中,将为结果过滤不为null的列值。
让我们以先前定义的Supplier表为例。
场景:获取供应商名称不为null的产品的名称。
SELECT ProductName FROM Supplier WHERE SupplierName IS NOT NULL;
输出:
SupplierName |
---|
Cookie |
Jam |