我已经使用 Excel 生成了许多SELECT
来自具有大量相同模式的数据库的模式名称列表的语句:
select result from foo.table limit 1;
select result from bar.table limit 1;
select result from doo.table limit 1;
(foo
, bar
& doo
是我的模式的示例,实际上有数百个)。
Each SELECT
将仅返回一个结果。我只想要一栏result
具有与模式一样多的行。然后我可以根据架构名称将其复制回 Excel 中。
当我运行上面的查询时,我得到 1 行,其他行被丢弃:
Query result with 1 row discarded.
Query result with 1 row discarded.
Total query runtime: 40 ms.
1 row retrieved.
我尝试过使用UNION ALL
,但是limit 1
我用来确保每个模式表只返回一行,这似乎阻止了这种情况的工作。
如何防止其他行被丢弃,或者编写一个查询以更有效的方式返回我需要的值(两列 - schema_name,结果 - 每个模式一行)?
将各个子语句括在括号中以使语法明确:
(SELECT result FROM tbl1 LIMIT 1)
UNION ALL
(SELECT result FROM tbl2 LIMIT 1)
The 手册关于UNION https://www.postgresql.org/docs/current/sql-select.html#SQL-UNION关于这个问题非常明确:
select_statement
is any SELECT
没有一个声明ORDER BY
, LIMIT
,
FOR UPDATE
, or FOR SHARE
条款。 (ORDER BY
and LIMIT
可以附上
如果子表达式括在括号中,则为子表达式。没有
括号中,这些条款将被视为适用于结果UNION
,而不是其右侧的输入表达式。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)