不正确使用 EXCEPT 语法

3

我是 Sybase Adaptve Server 12.5.4 ,但这个查询好像无法运行。

SELECT login,account from tempdb.guest.acct_info_dr3
EXCEPT
SELECT login,account from tempdb.guest.acct_info_dr2

我已经检查了空格等问题。但是我一直收到这个错误消息Incorrect syntax near Except

奇怪的是,Oracle函数MINUS运行正常。


语法没问题。你确定两个表都存在吗? - phadaphunk
是的,select语句适用于两个表,union也适用于两个查询。 - user2283654
你能提供一个fiddle吗? - phadaphunk
1个回答

4
您可以将其重述为“左外连接(left outer join)”:
select dr3.login, dr3.account
from tempdb.guest.acct_info_dr3 left outer join
     (select distinct login, account
      from tempdb.guest.acct_info_dr2
     ) dr2
     on dr2.login = dr3.login and dr2.account = dr3.account
 where dr2.login is NULL

这将有效,除非列包含NULL值。如果是这样,就需要使用额外的逻辑进行修复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接