Lassen Sie uns dbo.Customer- und dbo.Country-Tabellen erstellen und dann EXISTS verwenden, um Datensätze für verschiedene Szenarien zurückzugeben.
Create table dbo.Customer (Id int, FName VARCHAR(50), LName VARCHAR(50), CountryShortName CHAR(2), Age tinyint) GO insert into dbo.Customer Values ( 1,'Raza','M','PK',20), (2,'Rita','John','US',12), (3,'Sukhi','Singh',Null,25), (4,'James','Smith','CA',60), (5,'Robert','Ladson','US',54), (6,'Alice','John','US',87), (7,'Raza','M','US',33), (8,'Dita','M','US',15), (9,'Adita','M','US',29) Create table dbo.Country ( CId tinyint, CountryName VARCHAR(50), CountryShortName CHAR(2)) go Insert into dbo.Country Values (1,'Pakistan','Pk'), (2,'United States of America','US')
1) EXISTS gibt TRUE zurück, wenn die Unterabfrage Zeilen enthält.
Das ist richtig, wenn unsere Unterabfrage irgendwelche Zeilen zurückgibt und wir EXISTS verwendet haben, wird die äußere Abfrage alle Zeilen zurückgeben.
Wählen Sie * aus dbo.Customer
WHERE Exists ( Select 1)
![]() |
So verwenden Sie EXISTS in SQL Server - SQL Server / TSQL-Tutorial |
Beachten Sie, dass unsere Unterabfrage eine statische Abfrage ist (Wählen Sie 1). Da die Unterabfrage Zeile zurückgegeben hat und EXISTS TRUE zurückgegeben hat, werden alle Datensätze aus der Tabelle dbo.Customer angezeigt.
2) Verwenden Sie EXISTS und Join with SubQuery
Das Echtzeitbeispiel für EXISTS wäre, wenn wir alle Datensätze aus der dbo.Customer-Tabelle finden möchten, die einen passenden CountryShortName aus der dbo.Country-Tabelle haben.
SELECT * FROM dbo.Customer a WHERE EXISTS (SELECT 1 FROM dbo.Country b WHERE a.CountryShortName=b.CountryShortName)
Bemerkt, dass ich CountryShortName von dbo.Customer und dbo.Country verglichen habe. Jede äußere Zeile wird mit den Ergebnissen der Unterabfrage verglichen, und wenn sie übereinstimmt, erhalten wir die Zeile.
Wir können die IN-Klausel für dieselbe Anforderung verwenden.
SELECT * FROM dbo.Customer a WHERE a.CountryShortName IN (SELECT b.CountryShortName FROM dbo.Country b WHERE a.CountryShortName=b.CountryShortName)
![]() |
So verwenden Sie EXISTS in SQL Server, um übereinstimmende Datensätze zurückzugeben - SQL Server / TSQL-Tutorial |
So verwenden Sie „Exists“ und „Not Exits“ in SQL Server