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

合并结果递减的Toad SQL查询,同时获取全量与限制级结果

解决方案:合并递减结果集并支持全量/筛选查询

没问题,我帮你搞定这个Toad SQL的需求,既能把逐次递减的结果合并成一个列表,又能同时支持查看全量站点和更严格筛选的记录,具体方案如下:

1. 合并所有层级结果为单一列表

如果需要把全量站点、指定县站点(你的原有538条)、严格筛选站点这三组逐次递减的结果合并到一个列表里,方便一次性查看所有层级的数据,可以用UNION ALL来拼接查询,同时添加一个标识列区分层级:

-- 合并全量、指定县、严格筛选的结果为一个列表
SELECT 
    '全量站点记录' AS RESULT_LEVEL,
    E_SITES.ID "SITE ID",
    E_SITES.NAME "SITE NAME",
    E_SITES.ADDR_1 "SITE ADDRESS",
    E_SITES.CITY_NAME || ', ' || E_SITES.STATE_CODE || ' ' || E_SITES.POSTAL_CODE AS "FULL ADDRESS",
    E_SITES.COUNTY_NAME
FROM E_SITES

UNION ALL

SELECT 
    '指定县站点记录' AS RESULT_LEVEL,
    E_SITES.ID "SITE ID",
    E_SITES.NAME "SITE NAME",
    E_SITES.ADDR_1 "SITE ADDRESS",
    E_SITES.CITY_NAME || ', ' || E_SITES.STATE_CODE || ' ' || E_SITES.POSTAL_CODE AS "FULL ADDRESS",
    E_SITES.COUNTY_NAME
FROM E_SITES 
WHERE E_SITES.COUNTY_NAME IN ('ALLAMAKEE', 'BENTON', '...') -- 替换为你实际的县列表

UNION ALL

SELECT 
    '严格筛选站点记录' AS RESULT_LEVEL,
    E_SITES.ID "SITE ID",
    E_SITES.NAME "SITE NAME",
    E_SITES.ADDR_1 "SITE ADDRESS",
    E_SITES.CITY_NAME || ', ' || E_SITES.STATE_CODE || ' ' || E_SITES.POSTAL_CODE AS "FULL ADDRESS",
    E_SITES.COUNTY_NAME
FROM E_SITES 
WHERE E_SITES.COUNTY_NAME IN ('ALLAMAKEE', 'BENTON', '...')
    AND E_SITES.POSTAL_CODE IS NOT NULL -- 示例严格筛选条件,可根据需求修改
    AND E_SITES.ADDR_1 IS NOT NULL
ORDER BY RESULT_LEVEL, "SITE ID";

这个方案的优势:

  • 三组结果会合并成一个列表,结果数量逐次递减(全量 > 指定县 > 严格筛选)
  • RESULT_LEVEL列能让你快速识别每条记录属于哪个筛选层级
  • 最后按层级和站点ID排序,结果规整易读

2. 动态切换查看指定层级记录

如果不想一次性查看所有结果,而是需要灵活切换查看全量、指定县或严格筛选的记录,可以用Toad的绑定变量功能,只需要一条SQL就能实现:

-- 动态切换筛选层级的查询(Toad中会弹出输入框)
SELECT 
    E_SITES.ID "SITE ID",
    E_SITES.NAME "SITE NAME",
    E_SITES.ADDR_1 "SITE ADDRESS",
    E_SITES.CITY_NAME || ', ' || E_SITES.STATE_CODE || ' ' || E_SITES.POSTAL_CODE AS "FULL ADDRESS",
    E_SITES.COUNTY_NAME
FROM E_SITES 
WHERE 
    CASE :SELECTION_LEVEL
        WHEN '全量' THEN 1
        WHEN '指定县' THEN CASE WHEN E_SITES.COUNTY_NAME IN ('ALLAMAKEE', 'BENTON', '...') THEN 1 ELSE 0 END
        WHEN '严格筛选' THEN CASE WHEN E_SITES.COUNTY_NAME IN ('ALLAMAKEE', 'BENTON', '...') 
                                    AND E_SITES.POSTAL_CODE IS NOT NULL 
                                    AND E_SITES.ADDR_1 IS NOT NULL THEN 1 ELSE 0 END
    END = 1
ORDER BY "SITE ID";

使用方法:

  • 在Toad中运行这条SQL时,会弹出输入框让你输入SELECTION_LEVEL的值
  • 输入全量就返回所有站点,输入指定县返回你的原有538条记录,输入严格筛选返回满足更严格条件的记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:14:32