【问题标题】:Case in WHERE clause for condition oracle条件 oracle 的 WHERE 子句中的案例
【发布时间】:2013-08-06 04:46:04
【问题描述】:

我必须编写一个具有动态 where 子句的查询。我有一列gap_value,如果用户发送参数'P',那么我需要获取gap_value>0,否则如果'N'它应该是gap_value<0

SELECT   a.region_cd, a.plant_cd, a.wk_nbr
    FROM or_doh_plant_matrl_sm_t a
   WHERE a.wk_nbr IN (201322, 201323)
     AND a.plant_cd = '1115'
     AND a.gap_value >0

不使用动态 SQL。我可以在WHERE 子句中使用吗?

【问题讨论】:

    标签: sql oracle plsql oracle11g


    【解决方案1】:

    试试这个:

    SELECT   a.region_cd, a.plant_cd, a.wk_nbr
        FROM or_doh_plant_matrl_sm_t a
       WHERE a.wk_nbr IN (201322, 201323)
         AND a.plant_cd = '1115'
         AND
         (
             (param = 'P' AND a.gap_value >0)
         OR  (param = 'N' AND a.gap_value <0)
         )
    

    【讨论】:

      猜你喜欢
      • 2013-07-09
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多