sql中isnull用法实例详解

发布时间:2019-07-17编辑:脚本学堂
本文介绍了sql中isnull的用法,使用指定的替换值替换 NULL,将被检查是否为 NULL的表达式,有需要的朋友参考下。

本节内容:
sql中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。
 
以下是sql语句中isnull用法的一些例子,一起来看看。
 
1,将 ISNULL 与 AVG 一起使用
查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。
 

USE pubs
GO
SELECT AVG(ISNULL(price, $10.00))
FROM titles
GO
 

 
2、查询出其中成绩(score)小于等于60的学生信息保存至表变量@tempTable中,当学生成绩为空时,成绩记为0
 

declare @tempTable table(
   stuname nchar(10),
   stuage int,
   stuscore float
);

insert into @tempTable  select name,age,ISNULL(score,0) from tb_Student  where  ISNULL(score,0)<=60 
select * from @tempTable

第二部分,sql数据库中ISNULL函数与判断值是否为空的sql语句大全

例子:
 

use 数据库
update news set author='jb51' where author is null

如果不正确,可以是输入错误了。仔细看下,强烈建议操作以前先备份下数据库。

说明:使用指定的替换值替换 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 隐式转换为 check_expression 的类型(如果这两个类型不同)后,则返回前者。

例子:
 

select avg(isnull(weight, 50))
from production.product;

辨析:
请勿使用 isnull 查找 null 值。而应使用 is null。下面的示例查找 weight 列中存在 null 的所有产品。请注意 is 和 null 之间的空格。

例子:
 

USE AdventureWorks2008R2;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO

第三部分,sql数据库中如何判断变量或字段是否为NULL?
判断变量是否为NULL:
IF (@VaribleName IS NULL)

选择字段值为NULL的记录:
WHERE COLUMN_NAME IS NULL

ISNULL()函数:
ISNULL(@VaribleName, 'DefaultValue')
ISNULL(COLUMN_NAME, 'Default Value')

第四部分,sql数据库中ISNULL的用法示例

mssql中ISNULL的用法示例,一般常用于表字段设置可为NULL的情况下,其语法如下:
ISNULL(表字段名,设置值) 讲解下上面的格式用法,表字段名指的是ISNULL语法所用于的查询表的字段名,设置值是当要查询表的字段名下的值为NULL的情况下时所代替的值。

例子:
1、有表action_log,表中有字段[action]
现用isnull方法处理action_log表中的action字段
 

declare @action varchar(20)
select @action=isnull([action],'default') from action_log
select @action
 

现将action_log表里的数据显示出来,方便以下的陈述。
sql语句isnull函数用法1

以上代码为如果查询的表字段action为空字段时返回一个'default'值。
执行结果:
sql语句isnull函数用法2

上图为action字段下有值且值为delete的情况,下面显示一个为null时的情况图:
 

declare @action varchar(20)
select @action=isnull([action],'default') from action_log where id=2
select @action 从action_log表中可以看出这张表id主键为2时action字段下的记录是null,如果执行以下代码的话:
declare @action varchar(20)
select @action=isnull([action],'default') from action_log where id=2
select @action

 见图:
sql语句isnull函数用法3

结果已经由null变成了isnull中设置的值'default’。