मुख्य सामग्री पर जाएं
मॉड्यूल 4 · पाठ 1 का 4पाठ्यक्रम में 13/57~8 min
मॉड्यूल पाठ (1/4)

सूचियाँ और श्रेणियाँ: अंदर और बीच में

पिछले मॉड्यूल में आपने समानताओं का उपयोग करके WHERE को फ़िल्टर किया था तुलनाएँ: salary > 30000, department_id = 1, hired_on >= '2020-01-01'। लेकिन जब स्थिति यह हो जाती है कि "मान इन पांच में से एक होना चाहिए", जंजीर ORs का ढेर:

SQL
-- 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 लौटाता है यदि कॉलम उनमें से किसी के बराबर है:

SQL
SELECT first_name, last_name, department_id
FROM   employees
WHERE  department_id IN (1, 2, 3);

यह शब्दार्थ की दृष्टि से उपरोक्त ORs के समान है, लेकिन कहीं अधिक पठनीय है: यह स्वाभाविक रूप से "जहाँ department_id (1, 2, 3) में है" के रूप में पढ़ा जाता है। यह काम भी करता है तार और तारीखों के साथ:

SQL
SELECT name
FROM   departments
WHERE  city IN ('Milano', 'Roma');

NOT IN (...) भी है, जो विपरीत कार्य करता है:

SQL
-- 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 है:

SQL
-- 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 दोनों समापन बिंदुओं पर समावेशी है। यह बहुत अच्छे से काम करता है तिथियाँ भी:

SQL
-- Everyone hired in 2020:
SELECT first_name, last_name, hired_on
FROM   employees
WHERE  hired_on BETWEEN '2020-01-01' AND '2020-12-31';

इसे अजमाएं

व्यायाम#sql.m4.l1.e1
प्रयास: 0लोड हो रहा है...

30000 और 50000 के बीच वेतन वाले कर्मचारियों का पहला नाम (प्रथम_नाम), अंतिम नाम (अंतिम_नाम) और वेतन (वेतन) दिखाएं। तीन स्तंभ.

संपादक लोड हो रहा है...
संकेत दिखाएँ

30000 और 50000 के बीच उपयोग करें - AND से जुड़ी दो तुलनाओं की तुलना में अधिक संक्षिप्त और पठनीय।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम की समीक्षा करें

व्यायाम#sql.m4.l1.e2
प्रयास: 0लोड हो रहा है...

विभाग 1, 2 या 4 में काम करने वाले कर्मचारियों का पहला नाम (पहला_नाम) और अंतिम नाम (अंतिम_नाम) सूचीबद्ध करें (IN का उपयोग करें)। अंतिम नाम से वर्णानुक्रम में क्रमबद्ध करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

WHERE Department_id IN (1, 2, 4) तीन ORs का संक्षिप्त संस्करण है।

3 प्रयासों के बाद समाधान उपलब्ध है