【问题标题】:SELECT either id = 0 or id = 555 but not both - ORACLE SQL选择 id = 0 或 id = 555 但不能同时选择两者 - ORACLE SQL
【发布时间】:2021-02-10 11:50:34
【问题描述】:

似乎 Oracle 缺少 XOR 运算符,我无法弄清楚如何在 ID=555 的行中选择具有 ID=0 的行没找到

SELECT * FROM table WHERE (id = 0 or id = 555) 

这给了我 id 为 0 和 555 的行,但如果存在具有相同 KEY 的匹配行,我不想要具有 ID=0 的行>ID=555

【问题讨论】:

  • 我看不出异或在这里有什么帮助,因为 ID 不可能同时为 0 和 555。似乎您想要 ID = 0 且 ID = 555 的行不存在的行,或者 ID 为 555 且 ID = 0 的行不存在的行。这或多或少已经是 SQL 语法。

标签: sql oracle select xor


【解决方案1】:

你可以使用not exists如下:

SELECT * FROM table t 
 WHERE id = 0 
   AND NOT EXISTS 
       (select 1 from table tt
         where tt.key = t.key and tt.id = 55)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 2011-12-10
    • 2018-07-24
    • 2021-03-18
    相关资源
    最近更新 更多