判断语句

where后面这样写为什么不对?正确的该如何写

where   CASE

    when s.O_ID = '01.02.01'  then  s.STATION_ID not in ('01.03.05.07' )

    when s.O_ID = '01.02.01'   then s.STATION_ID not in ('01.03.05.02')

    when s.O_ID = '01.02.01'  then s.STATION_ID not in ('01.03.05.03')

END

SQL 用户G2632943 发布于 2023-4-13 10:58 (编辑于 2023-4-13 11:26)
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
zsh331Lv8专家互助
发布于2023-12-13 21:58

SELECT *    FROM tabname WHERE NOT (O_ID = 'A' AND STATION_ID IN ('B', 'C', 'D'))

----------

-- 替换成对应内容即可。

最佳回答
0
魏景文Lv6见习互助
发布于2023-4-13 11:00

WHERE 后边没法写吧,再套一层

最佳回答
0
snrtuemcLv8专家互助
发布于2023-4-13 11:32(编辑于 2023-4-13 14:24)

试试这个

where   CASE

    when s.O_ID = '01.02.01'  then  s.STATION_ID not in ('01.03.05.07' )

    when s.O_ID = '01.02.01'   then s.STATION_ID not in ('01.03.05.02')

    when s.O_ID = '01.02.01'  then s.STATION_ID not in ('01.03.05.03')

    else 1=1

END

=====================

where 

   s.STATION_ID not in (   

CASE

    when s.O_ID = '01.02.01'  then  '01.03.05.07' 

    when s.O_ID = '01.02.01'   then '01.03.05.02'

    when s.O_ID = '01.02.01'  then '01.03.05.03'

END

)

不对啊,你的s.O_ID = '01.02.01'怎么都是这个值。。。

  • 3关注人数
  • 405浏览人数
  • 最后回答于:2023-12-13 21:58
    请选择关闭问题的原因
    确定 取消
    返回顶部