SQL Server中 Case When 函数 与 Access中 IIF 函数的应用

SQL Server中的判断语句:

case  判断对象  when   判断条件   then   条件为真的场合返回的结果 
else  其他的场合返回的结果
end

 首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下:
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
SELECT <myColumnSpec> =
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
CASE
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
WHEN <A> THEN <somethingA>
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
WHEN <B> THEN <somethingB>
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
ELSE <somethingE>
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
END
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子:
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
USE pubs
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
GO
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
SELECT
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     Title,
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
'Price Range' =
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
CASE
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
WHEN price IS NULL THEN 'Unpriced'
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
WHEN price < 10 THEN 'Bargain'
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
WHEN price BETWEEN 10 and 20 THEN 'Average'
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁        
ELSE 'Gift to impress relatives'
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁    
END
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
FROM titles
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
ORDER BY price
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
GO

例如:

case   Column1

        when  '1'    then   '男'

        when  '2'    then   '女'
else  '其他'

end

 

也可以是这个样子:

case
      when RIGHT(b.salesDate,2)='01' or RIGHT(b.salesDate,2)='02' or RIGHT(b.salesDate,2)='03' then left(b.salesDate,4)+'Q1'
      when RIGHT(b.salesDate,2)='04' or RIGHT(b.salesDate,2)='05' or RIGHT(b.salesDate,2)='06' then left(b.salesDate,4)+'Q2'
      when RIGHT(b.salesDate,2)='07' or RIGHT(b.salesDate,2)='08' or RIGHT(b.salesDate,2)='09' then left(b.salesDate,4)+'Q3'
      when RIGHT(b.salesDate,2)='10' or RIGHT(b.salesDate,2)='11' or RIGHT(b.salesDate,2)='12' then left(b.salesDate,4)+'Q4'
end

 

在Access中没有 case when 语句,对应的是 IIF() 函数

IIF(判断条件, 条件为真的场合返回的结果, 条件为假的场合返回的结果)

例如:

SELECT iif( isnull(Column1),2,Column1 ) FROM TableName

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值