如何将SQL MINUS语句与多个返回一起使用?

时间:2011-07-07 17:43:23

标签: sql select

我有一个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);

我该如何做到这一点?

2 个答案:

答案 0 :(得分:1)

请尝试使用=语句:

,而不是使用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);

答案 1 :(得分:0)

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