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

多条件SQL否定查询问题:老旧SQL环境下的替代实现方案

老旧SQL环境下的数据集过滤解决方案

原始数据

COLUMN A | COLUMN B
  TRA    |   ORIG
  TRA    |   ORIG
  TERM   |    _N
  TRA    |   ORIG
ORIG-REV1|    _N
ORIG-REV2|    _N

需求

需要过滤掉满足 COLUMN B='_N' AND COLUMN A IN ('ORIG-REV1','ORIG-REV2') 的记录,最终期望得到以下结果:

COLUMN A | COLUMN B
  TRA    |   ORIG
  TRA    |   ORIG
  TERM   |    _N
  TRA    |   ORIG

现有条件的问题

当前使用的过滤条件 COLUMN B<>'_N' AND (COLUMN A<>'ORIG-REV1' OR COLUMN A<>'ORIG-REV2') 错误排除了 COLUMN A=TERM 且 COLUMN B='_N' 的合法记录,且由于SQL环境老旧,无法使用NOT运算符,仅支持=、<>、>、<、OR、IN、LIKE这些基础运算符。

可行的替代条件

使用以下条件即可正确实现需求:

COLUMN B<>'_N' OR (COLUMN B='_N' AND COLUMN A<>'ORIG-REV1' AND COLUMN A<>'ORIG-REV2')

逻辑说明

  • 第一部分 COLUMN B<>'_N':保留所有COLUMN B不为_N的记录,包含所有TRA相关的有效记录;
  • 第二部分 (COLUMN B='_N' AND COLUMN A<>'ORIG-REV1' AND COLUMN A<>'ORIG-REV2'):专门保留COLUMN B为_N但COLUMN A既不是ORIG-REV1也不是ORIG-REV2的记录,覆盖了TERM那条需要保留的记录;
  • 通过OR连接两部分,刚好覆盖所有需要保留的记录,同时精准过滤掉ORIG-REV1、ORIG-REV2且COLUMN B='_N'的目标记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:10:15