如何在Oracle的where子句中使用IF THEN ELSE语句?
问题描述:
我很有趣,我该如何在Oracle的where子句中使用if-then-else语句或任何控制结构。我想用为:如何在Oracle的where子句中使用IF THEN ELSE语句?
- 时
pcustomer_id IS NULL
然后WHERE c.customer_id IS NULL
- 当
pcustomer_id IS NOT NULL
然后c.customer_id = pcustomer_id
。
我该怎么办?
SELECT *
FROM customer_inf c
WHERE
IF
pcustomer_id IS NULL THEN (c.customer_id IS NULL)
ELSE (c.customer_id = pcustomer_id) END IF;
答
如果我理解正确的话你只是想返回所有值时,c.customer_id = pcustomer_id包括null股权。所以:
select * from customer_inf c
where nvl(pcustomer_id,'999999999999') = nvl(c.customer_id, '999999999999');
您只需要选择在您的真实数据中不会出现的数字。
你可以使用案例,当在条款 –
你试过搜索吗?在SO – Aleksej