对空功能在SQL中的应用介绍



用指定的替换值替换null。

语法
isnull(check_expression,replacement_value)

参数
check_expression

一个表达式,将检查null.check_expression可以是任何类型。

replacement_value

表达时将返回check_expression是null.replacement_value必须具有相同的类型check_expresssion。

返回类型
返回类型为check_expression相同。

笔记
如果check_expression不为空,则表达式的返回值;否则,返回replacement_value。

样品
A.使用IsNull AVG
下面的示例查找所有图书的平均价格,并将标题表的价格列中的所有空条目替换为值10美元。

使用酒吧

选择AVG(isnull(价格10美元))
从标题


下面是结果集:

--------------------------
十四点二四

(1行(s)受影响)

B.使用ISNULL
下面的示例选择标题表中所有图书的标题、类型和价格。如果图书名称的价格为空,结果集中的价格为0。

使用酒吧

选择子串(标题1, 15)作为标题,类型类型,
isnull(价格0)价格
从标题


下面是结果集:

标题型价格
-----------------------------------------------------
忙碌的执行业务19.99
与同事一起做饭11.95
你可以打击商业2.99
直接谈生意19.99
硅谷mod_cook 19.99
美食的MIC mod_cook 2.99
心理学未定

SQL isnull(),(),ifnull(NVL)、合并()函数

请看下面的产品表:





p_id
产品名称
單價
库存量
unitsonorder


电脑类
六百九十九
二十五
十五


打印机
三百六十五
三十六



电话
二百八十
一百五十九
五十七

如果unitsonorder 是可选的,它也可以包含空值。

我们使用下面的SELECT语句:选择产品名称、单价*(unitsinstock + unitsonorder)
从产品


在上面的例子中,如果unitsonorder 的值为空,则返回NULL。

微软isnull()函数来指定如何处理空值。

NVL(),ifnull()和合并()函数也可以达到同样的效果。

在这里,我们希望null值为0。

下面,如果unitsonorder 是无效的,是不好计算,所以如果值为空则空()返回0。

SQL Server / MS访问
选择产品名称、单价*(unitsinstock +空(unitsonorder,0))
从产品


甲骨文公司


甲骨文没有isnull()的功能。但是,我们可以使用NVL()函数来实现相同的结果:选择产品名称、单价*(unitsinstock + NVL(unitsonorder,0))。
从产品


MySQL


MySQL也有一个功能类似IsNull(),但它的工作方式是从微软的空点不同()函数。

在MySQL数据库中,我们可以使用ifnull()函数,如:选择产品名称、单价*(unitsinstock + ifnull(unitsonorder,0))。
从产品


或者我们可以使用COALESCE()函数是这样的:选择产品名称、单价*(unitsinstock +合并(unitsonorder,0))
从产品