标签归档:case when end用法举例

mssql sqlserver如何使用sql脚本将“空字符串” 转换为”其它”值的方法


摘要:
下文讲述使用sql脚本将sqlserver数据表中的”空字符串”转换为其它值的方法,如下所示:
实验环境:sql server 2008 R2


项目背景:
在一些sql数据展示脚本的开发中,我们需要将”空字符串”转换为”其它”两个中文字进行显示。
下文将通过举例的方式讲述具体的实现方法,如下所示:

create table [maomao365.com]
(keyId int identity,
 info  nvarchar(30)  not null 
 )
 go

---插入特殊字符,前面加入N,使其转换为unicode
insert into [maomao365.com](info)
values (N''),
(N'猫猫小屋'),(N'sql blog')
go
 
--使用case when对空值进行判断处理
select 
 keyId,
 case  
    when info = N'' then '其它'
	else info 
 end as info 
  from [maomao365.com]
go
truncate table [maomao365.com]
drop     table [maomao365.com]

相关阅读:
case when then用法说明
使用”case when then end” 判断字段是否为null的方法

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] 
    

mssql sqlserver 当数据表中字段为空时,给出”默认值”的方法分享


摘要:
下文讲述sqlserver中,数据表中数值为空的处理方法,如下所示:
实验环境:sql server 2008 R2



实现思路:
在sqlserver中,实现此功能我们需采用isnull对空值进行处理和采用case对空值进行判断,如下所示:

 
     ---当数据表maomao365.com中列info中存在空值时,则输出汉字"空值"
      create table [maomao365.com](keyId int identity(1,1),
                         info nvarchar(30)  null
                        )
       go
       ---表数值初始化
       insert into [maomao365.com](info)values(N'sqlblog'),(null),(N'sql爱好者'),(N'猫猫小屋')
       go
   
       ---检索数据表maomao365.com,当遇到空值时,输出相应的中文汉字   
          
      select keyId ,
         case  
             when isnull(info,'') = '' then N'空值'
              else info 
         end  
           as info 
       from [maomao365.com]
       
        go
       truncate table [maomao365.com]
       drop       table [maomao365.com]
       go