【发布时间】:2021-05-14 15:18:27
【问题描述】:
我有一种情况,我需要加入两个不同的数据库(都是 oracle,我没有数据库链接)才能得到我的结果。我想知道是否可以使用 WITH 子句创建一个带有所有硬编码值的子查询,以加入其他数据库中的另一个表。我尝试了类似下面的方法
WITH TEMP AS (SELECT '8108428','8110729' FROM DUAL)
但是它将值作为列提供,但我需要将它们作为行放在一列下,因此我可以加入其他表。有人可以帮我解决吗?我以前使用过 WITH 子句,但其中有一个查询,但这只能采用硬编码值
感谢您的回复!
【问题讨论】:
-
快速修复:
UNION ALL. -
我有 1000 个值,所以 UNION ALL 不是可行的选择,因为我必须重复 Select in WITH 子句的次数与我的值一样多
-
除了db链接,可以导出为csv,在oracle中创建外部表。
-
你如何“拥有”数千个值?他们已经在桌子上了吗?它们是来自另一个来源吗?明白你问错了问题;您问“我如何使用 WITH 子句中的两个值来执行
”,但事实证明问题是您有数千个值,而不是如何使用 WITH 子句。也许 WITH 子句甚至不是最好的工具。 -
例如:您可以在一个数据库中创建一个 JSON 数组作为 CLOB,将该 JSON(通过任何方式)复制到另一个数据库,然后使用来自 JSON 的数据,就好像它是一个表,带有
JSON_TABLE函数。三个非常简单的步骤。
标签: sql oracle common-table-expression