当前位置: 代码迷 >> SQL >> .net基础-MSSQL函数isnull()简介
  详细解决方案

.net基础-MSSQL函数isnull()简介

热度:249   发布时间:2016-05-05 10:43:23.0
.net基础--MSSQL函数isnull()简介

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条目。

USEpubs

GO

SELECTAVG(ISNULL(price, $10.00))

FROMtitles

GO

下面是结果集

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

14.24          

(1row(s) affected)

B. 使用 ISNULL

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

USEpubs

GO

SELECTSUBSTRING(title, 1, 15) AS Title, type AS Type,

  ISNULL(price, 0.00) AS Price

FROMtitles

GO

C.在Full Join情况下使用ISNULL

表A:

tid

uid

anum

表B:

tbid

uid

bnum1

bnum2

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

selecta.tid,a.uid,a.anum,b.bnum1,b.bnum2 from a full join b ona.uid=b.uid

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

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

 小结:这个函数最大亮点在于:给空值赋默认值,避免了给非空的属性出现空值的出现!

  相关解决方案