Oracle SQL Developer 跨两库查询count(*)合并为单行输出的实现
正确实现SQL
你可以通过嵌套子查询+Oracle虚表DUAL实现单行两列的输出效果,语句如下:
SELECT (SELECT COUNT(CONSTRAINT_TYPE) FROM ALL_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'P' AND OWNER = 'ZEOTA') AS Zeota, (SELECT COUNT(*) FROM ALL_COL_COMMENTS WHERE OWNER = 'SP') AS SP FROM DUAL;
实现逻辑
- 两个括号内的子查询分别对应你原本的两个独立统计逻辑,各自返回单个统计值
- 借助Oracle系统虚表
DUAL(天然只有1行数据),将两个子查询的返回值作为两列合并到同一行,输出结果完全匹配你需要的格式
原报错语句问题说明
你之前尝试的合并语句有两处核心错误:
- 语法层面:同一条SELECT语句不能出现两个独立的
WHERE子句 - 逻辑层面:单表查询的过滤条件只能匹配到一个OWNER的记录,无法同时返回两个不同OWNER的统计结果
内容的提问来源于stack exchange,提问作者Kipsta23
相关产品推荐
相关产品推荐

