sql server中的ISNULL()用法详解

  • Post author:
  • Post category:其他




ISNULL()


用途:

使用指定的替换值替换返回值为NULL


语法:

ISNULL(check_expression,replacement_value)


参数:

check_expression,将被检查是否为NULL的表达式,可以为任意类型的。

replacement_value,在check_expression为NULL时返回的表达式。必须与check_expression相同类型。


返回类型:

返回与check_expression相同的类型


注释:

如果check_expression不为NULL,那么返回该表达式的值;否则返回replacement_value

示例:


1.将 ISNULL 与 AVG 一起使用

查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。

USE pubs

GO

SELECT AVG(ISNULL(price, $10.00))

FROM titles

GO

下面是结果集:

————————–

14.24

2.

使用 ISNULL


下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00。

USE pubs

GO

SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type,

ISNULL(price, 0.00) AS Price

FROM titles

GO


3. 在Full Join情况下使用ISNULL


表A:

tid    uid    anum

表B:

tbid    uid    bnum1    bnum2


需要通过uid全连接两个表:


select a.tid,a.uid,a.anum,b.bnum1,b.bnum2 from a full join b on a.uid=b.uid

全连接会有很多为空的情况,可以使用ISNull来解决,改为:

select isnull(a.tid,b.tid),isnull(a.uid,b.uid),isnull(a.anum,0),isnull(b.bnum1,



版权声明:本文为u013857407原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。