SQL NULL 函数
sql null 函数
用来判断字段的值是否为 null,包括:isnull()、nvl()、ifnull() 和 coalesce() 函数。
请看下面的 "products" 表:
p_id | productname | unitprice | unitsinstock | unitsonorder |
---|---|---|---|---|
1 | jarlsberg | 10.45 | 16 | 15 |
2 | mascarpone | 32.56 | 23 | |
3 | gorgonzola | 15.67 | 9 | 20 |
假如 "unitsonorder" 是可选的,而且可以包含 null 值。
我们使用下面的 select 语句:
select productname,unitprice*(unitsinstock+unitsonorder) from products
在上面的范例中,如果有 "unitsonorder" 值是 null,那么结果是 null。
微软的 isnull() 函数用于规定如何处理 null 值。
nvl()、ifnull() 和 coalesce() 函数也可以达到相同的结果。
在这里,我们希望 null 值为 0。
下面,如果 "unitsonorder" 是 null,则不会影响计算,因为如果值是 null 则 isnull() 返回 0:
1. sql server / ms access
select productname,unitprice*(unitsinstock+isnull(unitsonorder,0)) from products
2. oracle
oracle 没有 isnull() 函数。不过,我们可以使用 nvl() 函数达到相同的结果:
select productname,unitprice*(unitsinstock+nvl(unitsonorder,0)) from products
3. mysql
mysql 也拥有类似 isnull() 的函数。不过它的工作方式与微软的 isnull() 函数有点不同。
在 mysql 中,我们可以使用 ifnull() 函数,如下所示:
select productname,unitprice*(unitsinstock+ifnull(unitsonorder,0)) from products
或者我们可以使用 coalesce() 函数,如下所示:
select productname,unitprice*(unitsinstock+coalesce(unitsonorder,0)) from products
相关文章
- SQL 语法
- SQL WHERE 子句
- SQL INSERT 语句
- SQL DELETE 语句
- SQL SELECT TOP, LIMIT, ROWNUM 子句
- SQL 通配符
- SQL BETWEEN 操作符
- SQL JOIN 关键字
- SQL RIGHT JOIN 关键字
- SQL UNION 操作符
- SQL CREATE TABLE 语句
- SQL NOT NULL 约束
- SQL UNIQUE 约束
- SQL FOREIGN KEY 约束
- SQL CHECK 约束
- SQL CREATE INDEX 语句
- SQL DROP 语句
- SQL AUTO INCREMENT 字段
- SQL GROUP BY 语句
- SQL HAVING 子句