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

Oracle SQL验证主从记录计数一致性的单查询需求

主从记录子项数校验查询(找出不符记录)

直接通过关联子查询合并两个统计逻辑,同时处理数值类型转换避免字符串对比异常,最终仅输出实际子项数与预期不符的记录:

SELECT
    a.MULTI_ID,
    a.TOTAL AS ACTUAL,
    e.TOTAL AS EXPECTED
FROM
    (
        -- 统计实际子项数(减去主记录本身)
        SELECT MULTI_ID, COUNT(*) - 1 AS TOTAL
        FROM TABLE
        WHERE MULTI_ID IN (SELECT MULTI_ID FROM TABLE WHERE ID = MULTI_ID)
        GROUP BY MULTI_ID
    ) a
JOIN
    (
        -- 提取预期子项数并转为数值类型
        SELECT 
            MULTI_ID, 
            TO_NUMBER(EXTRACT(XML, '/data/qty/text()').getStringVal()) AS TOTAL
        FROM TABLE
        WHERE ID = MULTI_ID
    ) e
ON a.MULTI_ID = e.MULTI_ID
WHERE a.TOTAL != e.TOTAL;

关键说明:

  • 实际子项数保留原逻辑:用COUNT(*)-1剔除主记录本身,得到真实子项数量
  • 预期子项数通过TO_NUMBER转换为数值,避免字符串与数字对比产生的逻辑错误
  • 关联两个子查询后筛选数值不等的记录,输出格式完全匹配需求,比如针对MULTI_ID=8的场景会输出:
MULTI_ID    ACTUAL  EXPECTED
8           0       1

内容的提问来源于stack exchange,提问作者Somebody

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:53:14