ajm*_*d04 6 sql oracle plsql case where
这是一个简单的问题,我已经阅读了有关使用CASEin WHERE子句的一些细节,但无法清楚地了解如何使用它.以下是我的示例查询:
1 SELECT * FROM dual
2 WHERE (1 =1)
3 AND (SYSDATE+1 > SYSDATE)
4 AND (30 > 40)
5 AND (25 < 35);
Run Code Online (Sandbox Code Playgroud)
我有i_value参数中的程序.如果i_value为'S',我需要忽略第4行,如果i_value为'T',我需要忽略第5行.
提前致谢.
我认为这是解决您的问题的最佳方法:
select *
from dual
where (1 = 1)
and (sysdate + 1 > sysdate)
and case
when i_value = 'S'
then
case
when (25 < 35)
then 1
else 0
end
when i_value = 'T'
then
case
when (30 > 40)
then 1
else 0
end
end = 1;
Run Code Online (Sandbox Code Playgroud)
当然,您可以使用动态 SQL,但它会更困难且效率较低。
| 归档时间: |
|
| 查看次数: |
25179 次 |
| 最近记录: |