مرکزی مواد پر جائیں
ماڈیول 4 · سبق 1 از 4کورس میں 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;

ایس کیو ایل اسے پڑھنے کے قابل بنانے کے لیے دو شارٹ کٹ پیش کرتا ہے۔

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);

BETWEEN - "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 کے درمیان تنخواہ والے ملازمین کا پہلا نام (first_name)، آخری نام (last_name) اور تنخواہ (تنخواہ) دکھائیں۔ تین کالم۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

30000 اور 50000 کے درمیان استعمال کریں — AND کے ساتھ شامل کردہ دو موازنہوں سے زیادہ کمپیکٹ اور پڑھنے کے قابل۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش کا جائزہ لیں۔

ورزش#sql.m4.l1.e2
کوششیں: 0لوڈ ہو رہا ہے…

محکموں 1، 2 یا 4 میں کام کرنے والے ملازمین کا پہلا نام (پہلا_نام) اور آخری نام (آخری_نام) درج کریں (IN استعمال کریں)۔ حروف تہجی کے لحاظ سے آخری نام سے ترتیب دیں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

WHERE Department_id IN (1, 2, 4) تین ORs کا کمپیکٹ ورژن ہے۔

3 کوششوں کے بعد حل دستیاب ہے۔