You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c下改写含子查询的视图关联SQL为无嵌套子查询

改写无关联子查询的Oracle SQL实现

可以通过左连接+分组聚合的方式替代原关联子查询,确保输出结果与原查询完全一致,适用于Oracle 19c环境:

SELECT
    d.device_id AS msisdn,
    d.name,
    d.serviceTag,
    NVL(SUM(p.amount), 0) AS plans,
    0 AS tax_amount,
    0 AS total
FROM XWDDSB143.v_getDevices_detailed_report d
LEFT JOIN XWDDSB143.v_getplans p 
    ON p.device_id = d.device_id
WHERE d.device_id = '97440010917'
GROUP BY d.device_id, d.name, d.serviceTag;

改写说明:

  • 使用LEFT JOIN确保即使v_getplans中没有对应device_id的数据,设备表的记录依然会被保留,和原查询中子查询返回0的逻辑一致
  • 通过GROUP BY按设备的唯一标识字段分组,聚合计算amount的总和,再用NVL将聚合后的NULL值转换为0,匹配原查询的NVL(Sum(amount), 0)逻辑
  • 所有非聚合字段(device_id、name、serviceTag)都需包含在GROUP BY子句中,符合Oracle的分组规则

内容的提问来源于stack exchange,提问作者to-find

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 00:55:55