条件来自sql查询

时间:2016-04-11 15:01:52

标签: sql

我在这里写了一些伪sql(独立于任何DBMS),只是为了看看这是否可能,以及你会建议的其他解决方案。

select 
    sb.field
from 
    case 1
        subquery1 as sb
    case 2
        subquery2 as sb

这可能吗?如果没有,是否有任何解决方法使其工作?

由于

2 个答案:

答案 0 :(得分:1)

您可以在where子句中使用表达式来关闭某些子查询。大多数RDBMS将优化远离查询的where子句始终为false。这仅在两个子查询具有相同字段时才有效。

SELECT <fields>
FROM (
    SELECT <sub1> FROM table1 WHERE <expression which is true if you want sub1>
    UNION 
    SELECT <sub2> FROM table2 WHERE <expression which is true if you want sub2>
)

答案 1 :(得分:0)

据我所知,您想从动态表中进行选择。唯一的方法是动态的SQL我不推荐。相反,您可以创建一个case语句并在那里为每个案例编写查询。当然,只有你有合理数量的选择。