mssql sqlserver 查询(select)语句中使用if….else…判断语句的方法分享


摘要:
下文分享在sql脚本查询中使用if …else…判断语句的方法分享,如下所示:
实验环境:sql server 2008 R2


在平常的sql脚本编写中,我们常常将if else判断应用于存储过程、触发器、函数中,今天同事咨询我,在select查询中,如何应用if else ,左思右想终于得到想到了一个变相的实现方法。
采用case when关键字,实现类似if else的功能

case when '条件1' then '相应值1'  when '条件2' then '相应值2'   when '条件3' then '相应值3'   else '其它值' end

例:

查询数据表:maomao365.com
当列qty 大于1时,显示qty ,
当列qty等于0时,显示无数量
当列qty小于-1时,显示数量错误
其它一律显示 异常

    create table [maomao365.com] 
    (keyId int identity(1,1),
     info    varchar(30),
     qty int not null )
    go
    ---生成基础数据
    insert into [maomao365.com](info, qty)values('A',1),
    ('B',2),('C',-1),('D',0),('E',100),('F',-11),('G',0)
    go
     ---变相在select中应用 if else关键字
   select keyId,info,
      case 
        when qty >1  then convert(nvarchar(100),qty)     
        when qty =0  then N'无数量'
        when qty <-1 then N'数量错误'
        else     N'异常'
      end as qty 
    from [maomao365.com]
   go
   truncate table  [maomao365.com] 
   drop      table  [maomao365.com]