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

Oracle SQL查询需求:仅返回至少含一个NULL值的行

解决Oracle PIVOT后筛选含NULL值行的问题

首先修正你的PIVOT查询并添加正确的筛选条件,核心问题是数字列名需要用双引号引用,否则Oracle会将WHERE子句中的0/1/2识别为数字常量而非列名,导致筛选条件失效。

修正后的完整查询

SELECT *
FROM (
    SELECT AD.DE, AD.AT, AD.LO
    FROM M.AD AD
) SourceTable      
PIVOT (
    MAX(DE)
    FOR (LO) IN (
        0 AS "0",
        1 AS "1",
        2 AS "2"
    )
) PivotTable
WHERE "0" IS NULL OR "1" IS NULL OR "2" IS NULL;

关键说明

  • 列名引用:Oracle中如果使用纯数字作为列名,必须用双引号包裹,否则数据库会将其解析为数值,而非你PIVOT生成的列。这是你之前添加WHERE子句无结果的核心原因。
  • 筛选逻辑:WHERE "0" IS NULL OR "1" IS NULL OR "2" IS NULL直接判断三个PIVOT生成的列中至少有一个为NULL,符合你“仅保留含至少一个NULL值列的行”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 00:07:02