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

Firebird数据库OR运算符嵌套条件查询的正确语法求助

Firebird 嵌套条件查询正确写法

你的筛选逻辑本身没有问题,语法报错通常是Firebird特有的标识符大小写规则导致的,以下是符合规范的写法:

SELECT *
FROM "PREORDER"
WHERE MOST_RECENT = 'Y'
AND (
    COLLECTED = 'N'
    OR (COLLECTED = 'Y' AND CUSTOMER_NUMBER <> 0)
);

如果创建表时字段是大小写敏感模式(建表时字段加了双引号定义),需要给所有字段也加上双引号匹配大小写:

SELECT *
FROM "PREORDER"
WHERE "MOST_RECENT" = 'Y'
AND (
    "COLLECTED" = 'N'
    OR ("COLLECTED" = 'Y' AND "CUSTOMER_NUMBER" <> 0)
);

补充说明

  • 写法上把公共条件MOST_RECENT = 'Y'提前,可读性更高,逻辑和你原来的写法完全等价
  • 如果CUSTOMER_NUMBER允许为空,且你需要把空值也归为不等于0的情况,可以将对应条件修改为CUSTOMER_NUMBER <> 0 OR CUSTOMER_NUMBER IS NULL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:06:02