【发布时间】:2015-09-28 15:09:05
【问题描述】:
我正在编写一些脚本,并试图弄清楚如何添加正确的逻辑,以便根据传入的变量是什么(我将使用 x 作为示例),那个两个选择语句将运行。这是我正在寻找的一个简单示例:
两个选择语句选项 X 等于“1”或“2”
如果 X 等于 1,则运行“select * from table where y=3 and z=4;”
如果 X 等于 2,则运行“select * from table where y=3 and z=5 and q=6 and r=12;”
这两个语句的 where 子句不同这一事实引起了我的问题,因为它使我更难像往常一样执行 CASE 语句。
我想到的第一件事是做一些事情,比如在 from 子句中做一个 case 语句,这样我就可以做这样的事情:
select * from
(
case when x=1 then (select 1 from dual)
case when x=2 then (select 2 from dual)
)
但我知道这行不通,我不确定是否将这种逻辑添加到 from 子句中。
总而言之,我正在尝试根据传递给 SQL 的变量的值运行两个可能的查询之一,但是这两个查询具有不同的 where 子句,这使得在where 子句。对于如何解决此问题的任何意见或建议,我将不胜感激。
感谢各位高手!
【问题讨论】:
-
是否需要从同一张表中选择不同的 WHERE 条件?
-
是的,两条语句都是从同一张表中选择的,where条件不同(where条件也不同长度)