我在这里写一些伪sql(独立于任何DBMS),只是为了看看这是否可能,以及您会建议哪些其他解决方案。有条件从sql查询
select
sb.field
from
case 1
subquery1 as sb
case 2
subquery2 as sb
这可能吗?如果没有,是否有任何解决方法使其工作?
谢谢
我在这里写一些伪sql(独立于任何DBMS),只是为了看看这是否可能,以及您会建议哪些其他解决方案。有条件从sql查询
select
sb.field
from
case 1
subquery1 as sb
case 2
subquery2 as sb
这可能吗?如果没有,是否有任何解决方法使其工作?
谢谢
从我理解你想要从动态表中选择。唯一的方法将是一个动态的SQL,我不建议。相反,您可以制作案例陈述,并为其中的每个案例编写查询。当然,那只有当你有合理数量的选择。
您可以在where子句中使用表达式来关闭某些子查询。大多数关系型数据库管理系统(RDBMS)将用where子句永远是假的来优化查询。这仅在两个子查询具有相同字段时才有效。
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,2)进行比较,看它适用与否?还是应该同时适用这两种情况? – trincot
查看答案:http://stackoverflow.com/questions/646334/is-it-possible-to-use-a-case-statement-in-a-sql-from-clauses –