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

单SQL语句实现多组核销列统一查询与结果合并

用单条SQL合并多组核销记录查询

嘿,这个场景太常见了!你现在的表结构是把多笔核销数据横向存在同一行里,要一次性筛选出所有WOCODE包含'Warehouse'的记录,完全可以用UNION ALL来把四组数据纵向合并,不用再手动跑四次查询复制粘贴啦。

核心思路

把每组核销字段当成独立的数据源,分别筛选符合条件的记录,再用UNION ALL把结果拼接成一个统一的结果集。这样既保留了所有符合条件的记录,又能一次完成查询。

完整SQL示例

假设你的表名叫claim_records,替换成你实际的表名就行:

-- 第一组核销数据
SELECT 
    WOCLAIMNO1 AS claim_no,
    WOAMT1 AS amount,
    WOCODE1 AS code
FROM claim_records
WHERE WOCODE1 LIKE '%Warehouse%'

-- 合并第二组
UNION ALL

SELECT 
    WOCLAIMNO2 AS claim_no,
    WOAMT2 AS amount,
    WOCODE2 AS code
FROM claim_records
WHERE WOCODE2 LIKE '%Warehouse%'

-- 合并第三组
UNION ALL

SELECT 
    WOCLAIMNO3 AS claim_no,
    WOAMT3 AS amount,
    WOCODE3 AS code
FROM claim_records
WHERE WOCODE3 LIKE '%Warehouse%'

-- 合并第四组
UNION ALL

SELECT 
    WOCLAIMNO4 AS claim_no,
    WOAMT4 AS amount,
    WOCODE4 AS code
FROM claim_records
WHERE WOCODE4 LIKE '%Warehouse%';

几个关键注意点

  • 用UNION ALL而不是UNION:UNION会自动去重,但如果你的业务里允许同一核销记录重复出现(或者只是不想丢失任何符合条件的行),UNION ALL效率更高,因为不需要做去重校验。
  • 字段类型要匹配:确保四组对应的字段类型一致(比如WOAMT1到WOAMT4都是数值型,WOCLAIMNO系列都是字符串型),不然会报错。
  • 保留原表其他信息:如果需要关联原记录的其他字段(比如主记录ID、索赔日期等),可以在每个SELECT里加上这些字段,比如:
    SELECT 
        claim_id, -- 原表的主标识字段
        WOCLAIMNO1 AS claim_no,
        WOAMT1 AS amount,
        WOCODE1 AS code
    FROM claim_records
    WHERE WOCODE1 LIKE '%Warehouse%'
    -- 其他组同样加上claim_id
    

这样执行一次就能拿到所有符合条件的核销记录,完美替代多次手动操作~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:29:14