2013-08-06 7 views
0

Мне нужно написать запрос с динамическим предложением where. У меня есть столбец gap_value, если пользователь отправляет параметр «P», тогда мне нужно получить gap_value>0 else, если «N» должно быть gap_value<0.Дело в выражении WHERE для условия oracle

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?

ответ

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) 
    )