我有一个查询,如果满足某个条件,则必须从一个表中选择;如果条件不同,则必须从另一个表中选择。
在我的例子中,如果我们在Database_A上,我需要从Table_A中选择,如果我们在Database_B上,我需要从Table_B中选择,但是条件可以是不同的。
我想做这样的事情:
SELECT
COLUMN_1, COLUMN_2, ..., COLUMN_N
FROM
(if database is Database_A then Table_A
but if database is Database_B then from Table B
else... it could be DUAL if any other situation, it will throw an error, but i can manage it)
WHERE
(my where criteria)
我怎么能用纯SQL而不是PL-SQL呢?我可以使用嵌套查询或WITH或类似的东西,但不能“编码”。我不能创建表或视图,我只能查询数据库的数据。
我试过使用CASE或其他选项,但没有运气。
2条答案
按热度按时间e0bqpujr1#
您可以在条件准则中使用数据库名称和UNION运算子,从右边的表格中选取。
lrpiutwd2#
如果是从两个表中选择一个表的情况,则类似下面的内容可能会有所帮助:
您可以将where子句放在cte定义(WITH子句)或主SQL中,或者同时放在这两个语句中。
如果两个表都不能从两个数据库访问,那么你应该有一个单独的脚本,每个数据库一个脚本。但是,你可以检查哪个是活动的数据库和/或是否有一个特定的表。