SQL সার্ভারে (Transact-SQL), INTERSECT অপারেটর উভয় ডেটা সেট বা SELECT স্টেটমেন্টে রেকর্ড ফেরত দিতে ব্যবহৃত হয়। যদি একটি রেকর্ড শুধুমাত্র একটি ক্যোয়ারীতে পাওয়া যায় এবং অন্যটিতে না থাকে তবে এটি INTERSECT এর ফলাফল সেট থেকে সরানো হবে৷
ইন্টারসেক্ট কোয়েরি
৷
ইন্টারসেক্ট কোয়েরি থেকে প্রত্যাবর্তিত ফলাফল চিত্রিত করুন
ব্যাখ্যা: INTERSECT ক্যোয়ারী নীল ফিল এলাকায় অবস্থিত রেকর্ড ফিরিয়ে দেবে। এই রেকর্ডগুলি ডেটাবেস 1 এবং ডেটাবেস2 উভয়েই রয়েছে৷
৷ইন্টারসেক্টের প্রতিটি সিলেক্টের ফলাফলে একই সংখ্যক কলাম থাকতে হবে একই ডেটা টাইপের সাথে সেট করা।
ইন্টারসেক্ট অপারেটর সিনট্যাক্স
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kien]
INTERSECT
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kien];
ভেরিয়েবল নাম বা পরিবর্তনশীল মান
bieu_thuc
আপনি যে কলাম বা মানটি SELECT স্টেটমেন্টের মধ্যে তুলনা করতে চান৷ প্রতিটি SELECT বিবৃতিতে তাদের একই তথ্য ক্ষেত্রে থাকা দরকার নেই তবে সংশ্লিষ্ট কলামগুলিতে অবশ্যই একই ডেটা থাকতে হবে৷
state
টেবিল সেখান থেকে রেকর্ড পেতে চায়৷ FROM ক্লজে কমপক্ষে 1টি টেবিল থাকতে হবে।
WHERE dieu_kien
বিকল্প৷ নির্বাচিত রেকর্ডের জন্য শর্ত অবশ্যই পূরণ করতে হবে।
দ্রষ্টব্য:
- দুটি SELECT স্টেটমেন্টে অবশ্যই একই সংখ্যক এক্সপ্রেশন থাকতে হবে।
- প্রতিটি SELECT স্টেটমেন্টের সংশ্লিষ্ট কলামে একই ডেটা টাইপ থাকতে হবে।
- ইন্টারসেক্ট অপারেটর শুধুমাত্র SELECT স্টেটমেন্টের মধ্যে সাধারণ রেকর্ড ফেরত দেয়।
উদাহরণস্বরূপ - 1টি অভিব্যক্তি সহ
SELECT sanpham_id
FROM sanpham
INTERSECT
SELECT sanpham_id
FROM hangtonkho;
এই উদাহরণে, যদি sanpham_id উভয় সানফাম এবং হ্যাংটনখো টেবিলে উপস্থিত হয়, তাহলে এটি ইন্টারসেক্টের ফলাফল সেটে থাকবে।
এখন এই ক্যোয়ারীতে WHERE শর্ত যোগ করুন।
SELECT sanpham_id
FROM sanpham
WHERE sanpham_id >= 50
INTERSECT
SELECT sanpham_id
FROM hangtonkho
WHERE soluong >0;
প্রথম ডেটাসেট ফিল্টার করবে এবং ড্যাশবোর্ডে রেকর্ড ফিরিয়ে দেবে এবং sanpham_id 50 এর থেকে বড় বা সমান। দ্বিতীয় ডেটা সেটটি hangtonkho থেকে ফিল্টার করবে সারণী যদি সংখ্যাটি 0-এর বেশি হয়।
উদাহরণস্বরূপ - একাধিক অভিব্যক্তি সহ
SELECT danhba_id, ho, ten
FROM danhba
WHERE ho = 'Anderson'
INTERSECT
SELECT nhanvien_id, ho, ten
FROM nhanvien;
এই উদাহরণে, ক্যোয়ারী দুটি SELECT স্টেটমেন্টের ছেদ করার ফলাফল প্রদান করে। যদি danhba তালিকায় একটি রেকর্ড থাকে যে danhba_id , ho , ten danhba danhba_id , INTERSECT কোয়েরির নাম সেই রেকর্ডগুলি ফিরিয়ে দেবে৷
উদাহরণস্বরূপ - ORDER BY ব্যবহার করুন
ফলাফল সাজাতে ইন্টারসেক্ট ক্যোয়ারী সহ ORDER BY ক্লজ ব্যবহার করুন।
SELECT nhacung_id, nhacung_ten
FROM nhacung
WHERE nhacung_id > 500
INTERSECT
SELECT congty_id, congty_ten
FROM congty
WHERE congty_ten in ('Apple', 'Microsoft', 'SQL Server')
ORDER BY 2;
যেহেতু দুটি SELECT স্টেটমেন্টে কলামের নাম আলাদা, ফলাফল সেটে তাদের অবস্থান অনুসারে ORDER BY ধারার কলামটি উল্লেখ করা সহজ। উপরের উদাহরণে, আমরা nhacung_ten ফলাফল ফিল্টার করি / congty_ten ORDER BY 2 বাক্যাংশের মাধ্যমে আরোহী ক্রমে।
কারণ nhacung_ten / congty_ten ফলাফল সেটে ২য়।