মডিউল পাঠ (1/4)
তালিকা এবং ব্যাপ্তি: IN এবং এর মধ্যে
আগের মডিউলগুলিতে আপনি সমতা ব্যবহার করে 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;এসকিউএল এটি পাঠযোগ্য করার জন্য দুটি শর্টকাট অফার করে।
IN - "এর মধ্যে একটি"
IN (...) অপারেটর মানগুলির একটি তালিকা নেয় এবং true প্রদান করে যদি
কলাম তাদের any এর সমান:
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);BETWEEN — "A এবং B এর মধ্যে, উভয়ই অন্তর্ভুক্ত"
যখন শর্তটি একটি অবিচ্ছিন্ন পরিসর (সংখ্যা, তারিখ) এর পরিবর্তে
লেখা 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 এর মধ্যে বেতন সহ কর্মচারীদের প্রথম নাম (first_name), পদবী (last_name) এবং বেতন (বেতন) দেখান। তিনটি কলাম।
ইঙ্গিত দেখান
30000 এবং 50000-এর মধ্যে ব্যবহার করুন — AND দ্বারা যুক্ত হওয়া দুটি তুলনার চেয়ে বেশি কম্প্যাক্ট এবং পঠনযোগ্য।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
ব্যায়াম পর্যালোচনা করুন
1, 2 বা 4 বিভাগে কর্মরত কর্মচারীদের প্রথম নাম (first_name) এবং পদবী (last_name) তালিকাভুক্ত করুন (IN ব্যবহার করুন)। পদবি দ্বারা বর্ণানুক্রমিকভাবে অর্ডার করুন।
ইঙ্গিত দেখান
WHERE Department_id IN (1, 2, 4) হল তিনটি OR-এর কম্প্যাক্ট সংস্করণ।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ