ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 4 · 4లో పాఠం 1కోర్సులో 13/57~8 min
మాడ్యూల్ పాఠాలు (1/4)

జాబితాలు మరియు పరిధులు: IN మరియు BETWEEN

మునుపటి మాడ్యూల్‌లలో మీరు 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);

మధ్య — "A మరియు B మధ్య, రెండూ కలుపుకొని"

పరిస్థితి నిరంతర పరిధి (సంఖ్యలు, తేదీలు) అయినప్పుడు, బదులుగా 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 మధ్య జీతం ఉన్న ఉద్యోగుల మొదటి పేరు (మొదటి_పేరు), చివరి పేరు (చివరి_పేరు) మరియు జీతం (జీతం) చూపండి. మూడు నిలువు వరుసలు.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

ANDతో జత చేసిన రెండు పోలికల కంటే 30000 మరియు 50000 మధ్య ఉపయోగించండి — మరింత కాంపాక్ట్ మరియు చదవగలిగేది.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం సమీక్షించండి

వ్యాయామం#sql.m4.l1.e2
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

1, 2 లేదా 4 విభాగాల్లో పనిచేస్తున్న ఉద్యోగుల మొదటి పేరు (మొదటి_పేరు) మరియు చివరి పేరు (చివరి_పేరు) జాబితా చేయండి (IN ఉపయోగించండి). చివరి పేరుతో అక్షర క్రమంలో ఆర్డర్ చేయండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

WHERE Department_id IN (1, 2, 4) అనేది మూడు ORల యొక్క కాంపాక్ట్ వెర్షన్.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది