多种语法使用

Multiple Syntax Use

请更正我的 SQL 查询以便在 Oracle 中使用:

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

你应该在括号之间使用OR吗?我不确定用例,但看起来查询永远不会有结果,因为您期望同一列中同时有多个值。

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

我找到你了。您想要所有具有上述组合之一的记录。

如其他答案中所述,使用 OR 或者您可以使用 IN,如下所示:

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