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

请修正适用于Oracle数据库的SQL查询语句(多语法使用)

修正你的Oracle SQL查询语句

嘿,你的原SQL语句存在逻辑矛盾的问题——同一个数据行的SERIES字段不可能同时等于'I'、'J'和'K',所以用AND连接这些条件组永远返回空结果。下面给你两种可行的修正方案:

方案1:用OR连接条件组

这是最直观的写法,把条件组之间的AND换成OR,表示匹配任意一组SERIES+BOOKNO组合:

SELECT * 
FROM GNGRB.PRBOOK 
WHERE (SERIES = 'I' AND BOOKNO = '180922') 
   OR (SERIES = 'J' AND BOOKNO = '138446') 
   OR (SERIES = 'K' AND BOOKNO = '196491');

方案2:使用多列IN子句(更简洁)

Oracle支持多列的IN语法,能让代码更紧凑,逻辑和方案1完全一致:

SELECT * 
FROM GNGRB.PRBOOK 
WHERE (SERIES, BOOKNO) IN (
    ('I', '180922'),
    ('J', '138446'),
    ('K', '196491')
);

这两种写法都能正确查询出符合任意一组SERIES和BOOKNO匹配条件的数据行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:30:02