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

在SSMS中基于多值条件匹配映射表返回对应结果

使用SSMS实现基于Major/Minor Code多条件匹配的映射逻辑

问题背景

使用SSMS工具,需根据映射规则中Major Code和Minor Code的多值AND组合条件返回对应的Mapping Result,精确条件优先级高于模糊匹配。

1. 映射规则表

Major CodeMinor CodeMapping Result
1-*01;02;04Cash
1-19902Petty Cash
1-*05Accounts Receivables
1-99906Inventory
1-5*;1-6*07;08Supplies
1-**!!!Missing

匹配规则(优先级从高到低)

  • 精确匹配:Major Code为1-199且Minor Code为02 → 返回Petty Cash
  • 精确匹配:Major Code为1-999且Minor Code为06 → 返回Inventory
  • 模糊匹配:Major Code匹配1-5*或1-6*,且Minor Code为07或08 → 返回Supplies
  • 模糊匹配:Major Code匹配1-*且Minor Code为01/02/04 → 返回Cash(已被高优先级的Petty Cash规则过滤特殊情况)
  • 模糊匹配:Major Code匹配1-*且Minor Code为05 → 返回Accounts Receivables
  • 兜底规则:Major Code匹配1-*但Minor Code不在上述范围内 → 返回!!!Missing

2. 主表示例与期望结果

Major CodeMinor CodeMapping Result
1-00104Cash
1-19902Petty Cash
1-25002Cash
1-55006!!!Missing
1-69908Supplies
1-99906Inventory
1-99910!!!Missing

实现方案(T-SQL)

假设主表名为MainTable,包含MajorCode和MinorCode列,执行以下SQL语句即可得到符合要求的结果:

SELECT
    MajorCode,
    MinorCode,
    CASE
        -- 最高优先级:精确匹配1-199 + 02
        WHEN MajorCode = '1-199' AND MinorCode = '02' THEN 'Petty Cash'
        -- 次高优先级:精确匹配1-999 + 06
        WHEN MajorCode = '1-999' AND MinorCode = '06' THEN 'Inventory'
        -- 第三优先级:1-5*或1-6* + 07/08
        WHEN (MajorCode LIKE '1-5%' OR MajorCode LIKE '1-6%') AND MinorCode IN ('07', '08') THEN 'Supplies'
        -- 第四优先级:1-* + 01/02/04(已被前面规则过滤特殊情况)
        WHEN MajorCode LIKE '1-%' AND MinorCode IN ('01', '02', '04') THEN 'Cash'
        -- 第五优先级:1-* + 05
        WHEN MajorCode LIKE '1-%' AND MinorCode = '05' THEN 'Accounts Receivables'
        -- 兜底规则:1-* 但不在上述Minor Code范围内
        WHEN MajorCode LIKE '1-%' THEN '!!!Missing'
        -- 非1-开头的情况(可根据实际需求调整)
        ELSE 'Unclassified'
    END AS MappingResult
FROM MainTable;

关键说明

  1. 优先级控制:CASE语句从上到下执行,因此将优先级高的规则放在最前面,确保精确匹配优先生效。
  2. 通配符转换:SQL中用%代替映射规则中的*作为模糊匹配通配符。
  3. 多值简化:用IN运算符处理Minor Code的多值条件,比多个OR语句更简洁高效。

内容的提问来源于stack exchange,提问作者David.L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:15:55