Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Stuck, it seems easy
Message
De
31/01/2006 03:06:44
 
 
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Versions des environnements
SQL Server:
SQL Server 2000
Divers
Thread ID:
01091687
Message ID:
01091781
Vues:
16
>
>select item from table1
>  WHERE NOT EXISTS ( SELECT * FROM table2 WHERE table2.item = table1.item )
>-- Or
>select item from table1
>  WHERE item NOT IN ( SELECT item FROM table2 )
>
>

Sergey,
NOT EXISTS and NOT IN aren't equal because NOT IS is equal to <> ALL,
and a NULL value it makes to become unknown the whole comparison
CREATE TABLE #T1 (item INT NULL )
INSERT INTO #T1 VALUES (1)

CREATE TABLE #T2 (item INT NULL)

INSERT INTO #T2 VALUES (2)

SELECT #T1.* FROM #T1 LEFT JOIN #T2 ON #T1.item=#T2.item WHERE #T2.item IS NULL 
SELECT #T1.* FROM #T1 WHERE NOT EXISTS(SELECT * FROM #T2 WHERE #T1.item=#T2.item) 

SELECT #T1.* FROM #T1 WHERE item NOT IN (SELECT item FROM #T2 ) 
SELECT #T1.* FROM #T1 WHERE item <> ALL (SELECT item FROM #T2 ) 


INSERT INTO #T2 VALUES (NULL)

SELECT #T1.* FROM #T1 LEFT JOIN #T2 ON #T1.item=#T2.item WHERE #T2.item IS NULL 
SELECT #T1.* FROM #T1 WHERE NOT EXISTS(SELECT * FROM #T2 WHERE #T1.item=#T2.item) 

SELECT #T1.* FROM #T1 WHERE item NOT IN (SELECT item FROM #T2 ) 
SELECT #T1.* FROM #T1 WHERE item <> ALL (SELECT item FROM #T2 ) 

DROP TABLE #T1
DROP TABLE #T2
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform