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

请求编写Policy Exception赋值逻辑代码(4种CODE场景)

SQL解决方案:根据CODE字段赋值Policy Exception

核心逻辑拆解

通过条件判断+聚合/存在性检查覆盖所有4种场景:

  • 场景4(表为空):判断表中无任何记录,返回NULL
  • 场景3(仅含'NA'):确认所有记录的CODE都是'NA',返回'NO'
  • 场景1和2(含NA+有效值/仅含有效值):其余所有情况统一返回'YES'

方案一:聚合函数通用写法

适用于MySQL、PostgreSQL、SQL Server等绝大多数数据库:

SELECT
    CASE
        -- 场景4:源表无数据
        WHEN COUNT(*) = 0 THEN NULL
        -- 场景3:所有记录的CODE都是'NA'
        WHEN COUNT(CASE WHEN CODE != 'NA' THEN 1 END) = 0 THEN 'NO'
        -- 场景1+2:存在非NA的有效值,或同时存在NA和有效值
        ELSE 'YES'
    END AS Policy_Exception
FROM your_source_table;

代码说明

  • COUNT(*):统计表中总记录数,为0则说明表为空
  • COUNT(CASE WHEN CODE != 'NA' THEN 1 END):仅统计CODE不等于'NA'的记录数,为0则表示所有记录都是'NA'

方案二:EXISTS高效写法

数据量较大时,EXISTS无需全表聚合,性能更优:

SELECT
    CASE
        -- 场景4:源表无数据
        WHEN NOT EXISTS (SELECT 1 FROM your_source_table) THEN NULL
        -- 场景3:没有非NA的记录
        WHEN NOT EXISTS (SELECT 1 FROM your_source_table WHERE CODE != 'NA') THEN 'NO'
        -- 场景1+2:存在非NA的有效值
        ELSE 'YES'
    END AS Policy_Exception
-- 不同数据库虚拟表写法差异:
-- Oracle:FROM dual
-- MySQL/SQL Server:FROM (SELECT 1) AS dummy
FROM (SELECT 1) AS dummy;

代码说明

  • NOT EXISTS (SELECT 1 FROM your_source_table):直接检查表是否存在记录,不存在则返回NULL
  • NOT EXISTS (SELECT 1 FROM your_source_table WHERE CODE != 'NA'):检查是否没有非NA的记录,是则返回'NO'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:30:12