case when 转换为access中的等价语句

35次阅读
没有评论
1. 这是SQL Server中的SQL语句: 

select status=case when status='0' then '合格' else '不合格' end from tablename;

 

2. 这是Access中的SQL语句:

select IIF(status='0','合格','不合格') as status from tablename; 
SELECT 房主,房主id,楼号,单元,门牌号,
IIf([楼号]="车库","车库",IIf([楼号]="车位","车位",IIf([楼号]="%仓房","仓房","住宅"))) as 住宅类型
FROM 详细资料

根据表达式的求值,返回两部分之一。

IIf 函数

在任何可以使用表达式的位置均可使用 IIf。您可以使用 IIf 确定另一个表达式为 True 还是 False。如果表达式为 True,则 IIf 返回一个值;如果为 False,则 IIf 返回另一个值。请指定 IIf 返回的值。

更多示例

注意: 如果您使用IIf函数以在查询中创建计算的字段,替换等号 (=) 字段别名,并使用冒号 (:)。例如,状态: IIf ([发货日期] < Date (),”发运”,IIf ([发货日期] = 日期 (),”发货今天”、”Unshipped”))

表达式 结果
=IIf([机场代码]=”ORD”,”芝加哥”,IIf([机场代码]=”ATL”,”亚特兰大”,IIf([机场代码]=”SEA”,”西雅图”,”其他”))) 如果 [机场代码] 为“ORD”,则返回“芝加哥”。否则,如果 [机场代码] 为“ATL”,则返回“亚特兰大”。否则,如果 [机场代码] 为“SEA”,则返回“西雅图”。否则,返回“其他”。
=IIf([发货日期]<Date(),”已发货”,IIf([发货日期]=Date(),”今天发货”,”未发货”)) 如果 [发货日期] 早于今天的日期,则返回“已发货”。否则,如果 [发货日期] 等于今天的日期,则返回“今天发货”。否则,返回“未发货”。
=IIf([购买日期]<#1/1/2008#,”旧”,”新”) 如果 [购买日期] 早于 1/1/2008,则返回“旧”。否则,返回“新”。
=IIf(Eval([电压] Between 12 And 15 And [安培] Between 0.25 And 0.3),”正常”,”未校准”) 如果 [电压] 介于 12 和 15 之间,而 [安培] 介于 0.25 和 0.3 之间,则返回“正常”。否则,返回“未校准”。
=IIf(Eval([国家/地区] In (“加拿大”,”美国”,”墨西哥”)),”北美地区”,”其他”) 如果 [国家/地区] 为“加拿大”、“美国”或“墨西哥”,则返回“北美地区”。否则,返回“其他”。
=IIf([平均值]>=90,”A”,IIf([平均值]>=80,”B”,IIf([平均值]>=70,”C”,IIf([平均值]>=60,”D”,”F”)))) 如果 [平均值] 大于或等于 90,则返回“A”。否则,如果 [平均值] 大于或等于 80,则返回“B”。否则,如果 [平均值] 大于或等于 70,则返回“C”。否则,如果 [平均值] 大于或等于 60,则返回“D”。否则,返回“F”。
正文完