SQL Server में NOT IN क्या होता है?
🧠 Definition (Memory के लिए)
SQL Server में NOT IN का उपयोग उन records को निकालने के लिए किया जाता है जिनकी value दिए गए set या subquery में नहीं है। यानी, आप unwanted values को exclude करके बाकी records fetch कर सकते हैं।
🧩 Syntax
-- Value list के साथ
SELECT column_name(s)
FROM table_name
WHERE column_name NOT IN (value1, value2, ...);
-- Subquery के साथ
SELECT column_name(s)
FROM table_name
WHERE column_name NOT IN (SELECT column_name FROM another_table);
🧪 Example
CREATE TABLE Employee (
ID INT PRIMARY KEY,
Name NVARCHAR(50),
Department NVARCHAR(50)
);
INSERT INTO Employee VALUES
(1, 'Ram', 'HR'),
(2, 'Shyam', 'IT'),
(3, 'Geeta', 'Finance'),
(4, 'Sita', 'IT');
-- IT department के अलावा सभी employees select करें
SELECT Name, Department
FROM Employee
WHERE Department NOT IN ('IT');
📤 Output
Name | Department
-----------------------
Ram | HR
Geeta | Finance
💡 Explanation
- यह query उन employees को select करती है जिनका Department 'IT' नहीं है।
- NOT IN list या subquery के values को exclude करता है और बाकी rows दिखाता है।
- ध्यान दें कि अगर NOT IN में NULL value है तो result empty हो सकता है। ऐसे cases में NOT EXISTS better होता है।
⚖️ NOT IN vs NOT EXISTS
SQL Server में कभी-कभी NOT IN NULL values के कारण गलत output दे सकता है। ऐसे में NOT EXISTS use करना बेहतर होता है।
| Aspect | NOT IN | NOT EXISTS |
|---|---|---|
| NULL Handling | अगर list में NULL हो, तो result empty हो सकता है। | NULL के presence से effect नहीं होता। |
| Performance | Small datasets में fast, large datasets में slow हो सकता है। | Large datasets में ज्यादा reliable और efficient। |
| Use Case | Multiple value exclusion list के लिए simple और readable। | Subquery और complex filtering में safer option। |
Example with NOT EXISTS:
SELECT Name
FROM Employee e
WHERE NOT EXISTS (
SELECT 1
FROM Employee d
WHERE d.Department = 'IT' AND d.ID = e.ID
);
🎯 Interview Questions & Answers
- Q: NOT IN क्या करता है?
A: यह उन rows को fetch करता है जिनकी value दिए गए list या subquery में नहीं है। - Q: NOT IN और != operator में क्या अंतर है?
A: != केवल single value comparison करता है, जबकि NOT IN multiple values या subquery के लिए use होता है। - Q: NOT IN में NULL values का क्या effect होता है?
A: अगर list या subquery में NULL हो, तो query कुछ भी return नहीं कर सकती। ऐसे cases में NOT EXISTS का उपयोग करें।
📘 Conclusion
✅ NOT IN SQL Server में एक powerful condition है जो unwanted values को exclude करके बाकी data select करने में मदद करती है। NULL values के मामले में NOT EXISTS safer और efficient choice है। हमेशा dataset और NULL handling को ध्यान में रखकर SELECT query लिखें।
0 Comments