কম্পিউটার টিউটোরিয়াল

SQL Server-এ EXCEPT অপারেটর

SQL Server-এ EXCEPT অপারেটর প্রথম SELECT স্টেটমেন্টে ফেরত দেওয়া সারি গুলো রিটার্ন করতে ব্যবহৃত হয় যা দ্বিতীয় SELECT স্টেটমেন্টে ফেরত দেওয়া হয়নি। প্রতিটি SELECT স্টেটমেন্টের একটি ডেটা সেট থাকে। EXCEPT অপারেটর প্রথম সেট থেকে রেকর্ড নেয় এবং দ্বিতীয় সেটের ফলাফল গুলো বাদ দিয়ে দেয়।

EXCEPT কোয়েরি

SQL Server-এ EXCEPT অপারেটর
EXCEPT কোয়েরি উদাহরণ

ব্যাখ্যা: EXCEPT কোয়েরি নীল এলাকায় থাকা রেকর্ড গুলো রিটার্ন করে, অর্থাৎ শুধুমাত্র ডেটা সেট ১-এ থাকা রেকর্ড গুলো যা ডেটা সেট ২-তে নেই।

EXCEPT কোয়েরিতে প্রতিটি SELECT স্টেটমেন্টের রেজাল্ট সেটে একই সংখ্যক ফিল্ড থাকতে হবে এবং একই ডেটা টাইপের হতে হবে।

EXCEPT অপারেটর সিনট্যাক্স

SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kien]
EXCEPT
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kien];

ভেরিয়েবল নাম বা মান

bieu_thuc

যে কলাম বা মান দুটি SELECT স্টেটমেন্টের মধ্যে তুলনা করতে চান। এগুলো প্রতিটি SELECT স্টেটমেন্টে একই ইনফরমেশন ফিল্ডে থাকতে হয় না কিন্তু সংশ্লিষ্ট কলাম গুলোর ডেটা একই হতে হবে।

bang

যে টেবিল থেকে রেকর্ড পেতে চান। FROM ক্লজে কমপক্ষে ১ টি টেবিল থাকতে হবে।

WHERE dieu_kien

ঐচ্ছিক। রেকর্ড সিলেক্ট করার জন্য যা শর্ত পূরণ করতে হবে।

নোট:

  1. দুটি SELECT স্টেটমেন্টে একই সংখ্যক এক্সপ্রেশন থাকতে হবে।
  2. প্রতিটি SELECT স্টেটমেন্টের সংশ্লিষ্ট কলাম একই ডেটা টাইপের হতে হবে।
  3. EXCEPT অপারেটর প্রথম SELECT স্টেটমেন্ট থেকে সব রেকর্ড রিটার্ন করে যা দ্বিতীয় SELECT স্টেটমেন্টে নেই।
  4. SQL Server-এ EXCEPT অপারেটর Oracle-এ MINUS অপারেটরের সমতুল্য।

উদাহরণ - ১ এক্সপ্রেশন সহ

SELECT sanpham_id
FROM sanpham
EXCEPT
SELECT sanpham_id
FROM hangtonkho;

এই EXCEPT অপারেটর উদাহরণে, ফলাফল sanpham টেবিলের সব sanpham_id মান রিটার্ন করবে যা hangtonkho টেবিলে নেই। এর মানে যদি sanpham_id মান দুটি টেবিলেই থাকে, তবে সেটি রিটার্ন হবena।

উদাহরণ - একাধিক এক্সপ্রেশন সহ

SELECT danhba_id, ho, ten
FROM danhba
WHERE ho = 'Anderson'
EXCEPT
SELECT nhanvien_id, ho, ten
FROM nhanvien;

এই উদাহরণে, কোয়েরি danhba টেবিলের সেই রেকর্ড গুলো রিটার্ন করবে যেখানে কন্ট্যাক্ট আইডি, প্রথম ও শেষ নাম nhanvien টেবিলের কর্মচারীর আইডি, উপনাম ও প্রথম নামের সাথে মেলে না।

উদাহরণ - ORDER BY ক্লজ ব্যবহার করে

SELECT nhacung_id, nhacung_ten
FROM nhacung
WHERE bang = 'Florida'
EXCEPT
SELECT congty_id, congty_ten
FROM congty
WHERE congty_id <= 400
ORDER BY 2;

এই উদাহরণে, যেহেতু দুটি SELECT স্টেটমেন্টে কলামের নাম ভিন্ন, তাই রেজাল্ট সেটে অবস্থানের মাধ্যমে ORDER BY ক্লজে কলাম রেফার করা সহজ। উপরের উদাহরণে, আমরা nhacung_ten / congty_ten কে আরোহী ক্রমে ফিল্টার করেছি ORDER BY 2 ব্যবহার করে।

কারণ nhacung_ten / congty_ten রেজাল্ট সেটে ২য় অবস্থানে আছে।

  1. SQL Server-এ INTERSECT অপারেটর

  2. SQL Server-এ SELECT কমান্ড

  3. MS SQL Server-এ ডেটাবেস নির্বাচন

  4. MS SQL Server কী?