SQL之空与非空以及相关函数

create table emp1
  (
  eid int primary key,
  ename varchar(10),
  sal money
  )
  insert into emp1 select 1001,'lecky',null
  union select 1002,'kimi',10
  union select 1003,'hamasaki',20
  union select 1004,'boa',30
  
  select avg(sal) from emp1 where sal is not null
  --null将被聚合函数忽略
  
  select avg(case when sal is null then 0 else sal end) from emp1
  --此语句可将null参与聚合计算
  --null之间不可比较
  
  select coalesce('',null,'lecky',null)
  --coalesce返回参数中第一个非空表达式
  
  /*isnull*/
  
  if isnull('',0)=0 print 'ok'
  --不为null则返回该表达式的值,否则将被参数2替换
  
  if ''=0 print 'ok'
  --空字符ASC码值为0,所以该条件成立
  
  NULLIF ( expression , expression )
  
  --如果两个指定的表达式相等,则返回空值。
  --如果两个表达式不相等,NULLIF 返回第一个 expression 的值。
  --如果相等,NULLIF 返回第一个 expression 类型的空值。
  --参数为常量、列名、函数、子查询或算术运算符、按位运算符以及字符串运算符的任意组合
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值