मॉड्यूल पाठ (1/4)
सूचियाँ और श्रेणियाँ: अंदर और बीच में
पिछले मॉड्यूल में आपने समानताओं का उपयोग करके WHERE को फ़िल्टर किया था
तुलनाएँ: salary > 30000, department_id = 1, hired_on >= '2020-01-01'।
लेकिन जब स्थिति यह हो जाती है कि "मान इन पांच में से एक होना चाहिए",
जंजीर ORs का ढेर:
-- Heavy and fragile: adding a department means touching the query
SELECT first_name, last_name
FROM employees
WHERE department_id = 1
OR department_id = 2
OR department_id = 3;SQL इसे पठनीय बनाने के लिए दो शॉर्टकट प्रदान करता है।
IN - "इनमें से एक"
IN (...) ऑपरेटर मानों की एक सूची लेता है और true लौटाता है यदि
कॉलम उनमें से किसी के बराबर है:
SELECT first_name, last_name, department_id
FROM employees
WHERE department_id IN (1, 2, 3);यह शब्दार्थ की दृष्टि से उपरोक्त ORs के समान है, लेकिन कहीं अधिक पठनीय है: यह
स्वाभाविक रूप से "जहाँ department_id (1, 2, 3) में है" के रूप में पढ़ा जाता है। यह काम भी करता है
तार और तारीखों के साथ:
SELECT name
FROM departments
WHERE city IN ('Milano', 'Roma');NOT IN (...) भी है, जो विपरीत कार्य करता है:
-- Employees who are NOT in Engineering or Sales:
SELECT first_name, last_name
FROM employees
WHERE department_id NOT IN (1, 2);बीच - "ए और बी के बीच, दोनों सम्मिलित"
जब स्थिति इसके बजाय एक सतत सीमा (संख्या, दिनांक) होती है
column >= A AND column <= B लिखने पर आपके पास BETWEEN A AND B है:
-- Employees with a salary between 30000 and 50000 (both inclusive):
SELECT first_name, last_name, salary
FROM employees
WHERE salary BETWEEN 30000 AND 50000;BETWEEN दोनों समापन बिंदुओं पर समावेशी है। यह बहुत अच्छे से काम करता है
तिथियाँ भी:
-- Everyone hired in 2020:
SELECT first_name, last_name, hired_on
FROM employees
WHERE hired_on BETWEEN '2020-01-01' AND '2020-12-31';इसे अजमाएं
30000 और 50000 के बीच वेतन वाले कर्मचारियों का पहला नाम (प्रथम_नाम), अंतिम नाम (अंतिम_नाम) और वेतन (वेतन) दिखाएं। तीन स्तंभ.
संकेत दिखाएँ
30000 और 50000 के बीच उपयोग करें - AND से जुड़ी दो तुलनाओं की तुलना में अधिक संक्षिप्त और पठनीय।
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
विभाग 1, 2 या 4 में काम करने वाले कर्मचारियों का पहला नाम (पहला_नाम) और अंतिम नाम (अंतिम_नाम) सूचीबद्ध करें (IN का उपयोग करें)। अंतिम नाम से वर्णानुक्रम में क्रमबद्ध करें।
संकेत दिखाएँ
WHERE Department_id IN (1, 2, 4) तीन ORs का संक्षिप्त संस्करण है।
3 प्रयासों के बाद समाधान उपलब्ध है