怎样在SQL CASE表达式中返回THEN语句的多个值

日期: 2008-11-18 作者:Rudy Limeback翻译:April 来源:TechTarget中国 英文

问:我想在SQL CASE表达式中返回THEN语句的多个值: SELECT c.company_code, c.com_inactive_flag, e.emp_no  FROM company c, employees e  WHERE c.com_code = e.com_code  AND e.emp_status in (  CASE c.com_inactive_flag  WHEN &……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

:我想在SQL CASE表达式中返回THEN语句的多个值:


SELECT c.company_code, c.com_inactive_flag, e.emp_no 
FROM company c, employees e 
WHERE c.com_code = e.com_code 
AND e.emp_status in ( 
CASE c.com_inactive_flag 
WHEN 'N' THEN 'A'
WHEN 'Y' THEN 'B,C' END )

  如果标记为N,所有检索的员工都属于A类情况,否则就是B或C的。但是由于我的是'B,C',所以就不能返回任何值。有没有一种办法使我能放入'B,C'而不是'B'这个值呢?

  答:是的,有这种办法。在这种情况下,用布尔逻辑可能更容易解决一些。结合ANDs和ORs以及括号中嵌入的条件,你就可以在SQL中执行任何的命令。


SELECT c.company_code
     , c.com_inactive_flag
     , e.emp_no 
  FROM company c
INNER
  JOIN employees e 
    ON e.com_code = c.com_code 
   AND (
         ( c.com_inactive_flag = 'N' 
       AND e.emp_status = 'A'
         )
      OR ( c.com_inactive_flag = 'Y' 
       AND e.emp_status IN ('B','C')
         )
       )
 

翻译

April
April

相关推荐