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

Oracle SQL如何实现仅对特定组织执行指定查询条件

解决方案

修改后完整SQL

SELECT lines.customer_trx_id customer_trx_id,
       lines.unit_selling_price,
       lines.customer_trx_line_id customer_trx_line_id
    FROM mtl_units_of_measure uom,
         ra_customer_trx_lines_all lines,
         ra_customer_trx_all trx
WHERE trx.customer_trx_id = lines.customer_trx_id
      AND trx.complete_flag = 'Y'
      AND lines.uom_code = uom.uom_code(+)
      AND lines.line_type = 'LINE'
      AND trx.customer_Trx_id =1
      AND lines.unit_selling_price <>0
      -- 仅org_id为1、2时执行描述排除规则
      AND (
          trx.org_id NOT IN (1,2)
          OR (
              trx.org_id IN (1,2)
              AND lines.description NOT LIKE '%PROM%DISCOUNT%'
              AND lines.description NOT LIKE '%TIER%DISCOUNT%'
          )
      )

规则说明

  • 核心用分支逻辑实现不同组织的过滤规则隔离:
    • 当org_id不属于1、2时,条件分支直接返回真,跳过两条描述排除规则,所有满足基础过滤条件的行都会返回
    • 当org_id属于1、2时,才会校验两行NOT LIKE的过滤规则,排除符合指定描述的行
  • 上述逻辑默认org_id存储在交易头表ra_customer_trx_all(对应SQL别名trx)中,若实际业务中组织标识存储在行表ra_customer_trx_lines_all中,只需将所有trx.org_id替换为lines.org_id即可
  • 可选兼容优化:如果org_id存在空值场景,可将trx.org_id NOT IN (1,2)修改为NVL(trx.org_id, 0) NOT IN (1,2),避免空值导致的判断异常

内容的提问来源于stack exchange,提问作者David D'Lima

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:45:03