为了账号安全,请及时绑定邮箱和手机立即绑定

SQL Server中的CASE语句不支持OR

SQL Server中的CASE语句不支持OR

婷婷同学_ 2019-11-04 15:43:22
不支持语句子句中的OR运算符。我怎样才能做到这一点?WHENCASECASE ebv.db_no     WHEN 22978 OR 23218 OR 23219 THEN 'WECS 9500'     ELSE 'WECS 9520' END as wecs_system 
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

该格式要求您使用以下任一种:


CASE ebv.db_no 

  WHEN 22978 THEN 'WECS 9500' 

  WHEN 23218 THEN 'WECS 9500'  

  WHEN 23219 THEN 'WECS 9500' 

  ELSE 'WECS 9520' 

END as wecs_system 

否则,请使用:


CASE  

  WHEN ebv.db_no IN (22978, 23218, 23219) THEN 'WECS 9500' 

  ELSE 'WECS 9520' 

END as wecs_system 


查看完整回答
反对 回复 2019-11-04
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

CASE

  WHEN ebv.db_no = 22978 OR 

       ebv.db_no = 23218 OR

       ebv.db_no = 23219

  THEN 'WECS 9500' 

  ELSE 'WECS 9520' 

END as wecs_system 


查看完整回答
反对 回复 2019-11-04
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

您可以使用WHEN拥有的一种表达方式,但不能将两者混合使用。


当when_expression


是使用简单CASE格式时与input_expression进行比较的简单表达式。when_expression是任何有效的表达式。input_expression和每个when_expression的数据类型必须相同或必须是隐式转换。


当Boolean_expression


使用搜索的CASE格式时是否评估布尔表达式。Boolean_expression是任何有效的布尔表达式。


您可以编程:


1。


    CASE ProductLine

            WHEN 'R' THEN 'Road'

            WHEN 'M' THEN 'Mountain'

            WHEN 'T' THEN 'Touring'

            WHEN 'S' THEN 'Other sale items'

            ELSE 'Not for sale'

2。


    CASE

            WHEN ListPrice =  0 THEN 'Mfg item - not for resale'

            WHEN ListPrice < 50 THEN 'Under $50'

            WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'

            WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'

            ELSE 'Over $1000'

          END

但是无论如何,您都可以预期将使用布尔表达式比较变量排名。


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 855 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信