如何使用SQL MINUS语句与多个返回



我有一个SQL语句,我想返回从一个MINUS语句中发现的6个字段,该语句只比较来自2个表的1个字段。当MINUS语句只返回1个条目时,它可以正常工作,但如果返回多于1,则会出错。

SELECT DROPPER_ID, EMAIL, ACTIVE, COUNTRY_CD, FIRST_NAME, LAST_NAME FROM PETE.DROPPER   
WHERE DROPPER_ID = (
    SELECT DROPPER_ID FROM PETE.DROPPER WHERE COUNTRY_CD <> 'USA' AND ACTIVE = 1 
    MINUS 
    SELECT DROPPER_ID FROM PETE.DROPPER_COMPARE);

我怎样才能做到这一点?

不使用=,尝试使用IN语句:

SELECT DROPPER_ID, EMAIL, ACTIVE, COUNTRY_CD, FIRST_NAME, LAST_NAME FROM PETE.DROPPER   
WHERE DROPPER_ID IN (
    SELECT DROPPER_ID FROM PETE.DROPPER WHERE COUNTRY_CD <> 'USA' AND ACTIVE = 1 
    MINUS 
    SELECT DROPPER_ID FROM PETE.DROPPER_COMPARE);

问题是在你的where子句:它目前被设计为比较dropper_id与单个值,但这实际上不是你想要的。要解决这个问题,请将'='符号替换为'in'。这将告诉WHERE子句将子查询视为值的元组或列表,而不是单个值。

最新更新