我必须编写一个具有动态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
条款中使用吗?
答案 0 :(得分: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)
)