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 TRUE लौटाएगा।
यह सही है, अगर हमारी सबक्वेरी किसी भी पंक्ति को वापस कर देगी और हमने EXISTS का उपयोग किया है, तो बाहरी क्वेरी सभी पंक्तियों को वापस करने जा रही है।
dbo से * चुनें। ग्राहक
WHERE Exists ( Select 1)
SQL सर्वर में EXISTS का उपयोग कैसे करें - SQL सर्वर / TSQL ट्यूटोरियल |
ध्यान दिया कि हमारी सबक्वेरी स्थिर क्वेरी है (चुनें 1)। चूंकि सबक्वेरी ने पंक्ति लौटाई और EXISTS ने TRUE लौटाया, इसलिए dbo.Customer तालिका के सभी रिकॉर्ड प्रदर्शित होते हैं।
2) EXISTS का उपयोग करें और SubQuery के साथ जुड़ें
EXISTS का अधिक वास्तविक समय उदाहरण तब होगा जब हम dbo से सभी रिकॉर्ड ढूंढना चाहते हैं। ग्राहक तालिका जिसमें dbo.Country तालिका से कंट्रीशॉर्टनाम से मेल खाता है।
SELECT * FROM dbo.Customer a WHERE EXISTS (SELECT 1 FROM dbo.Country b WHERE a.CountryShortName=b.CountryShortName)
ध्यान दिया कि मैंने CountryShortName की तुलना dbo.Customer और dbo.Count से की है। प्रत्येक बाहरी पंक्ति की तुलना सबक्वेरी परिणामों से की जाएगी और यदि मेल खाता है, तो हमें पंक्ति मिलती है।
हम समान आवश्यकता के लिए IN क्लॉज का उपयोग कर सकते हैं।
SELECT * FROM dbo.Customer a WHERE a.CountryShortName IN (SELECT b.CountryShortName FROM dbo.Country b WHERE a.CountryShortName=b.CountryShortName)
मिलान रिकॉर्ड वापस करने के लिए SQL सर्वर में EXISTS का उपयोग कैसे करें - SQL सर्वर / TSQL ट्यूटोरियल |
एसक्यूएल सर्वर में एक्ज़िस्ट और नॉट एग्ज़िट का उपयोग कैसे करें