您的位置:首页 > 其它

select ISNULL(,)来替换NULL值的返回值

2013-01-08 08:44 281 查看
ISNULL

使用指定的替换值替换NULL。

语法

ISNULL ( check_expression , replacement_value )

参数

check_expression

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

replacement_value

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

返回类型

返回与check_expression
相同的类型。

注释

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

示例

A. 将ISNULL
与AVG
一起使用

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

USE pubs

GO

SELECT AVG(ISNULL(price, $10.00))

FROM titles

GO

下面是结果集:

--------------------------

14.24

(1 row(s) affected)

B. 使用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

C. 在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,0),isnull(b.bnum2,0) from a full join b on a.uid=b.uid
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: