SQL Server-এ UNION ALL অপারেটর ২ বা অধিক SELECT স্টেটমেন্টের রেজাল্ট সেট কম্বাইন করতে ব্যবহৃত হয়।
UNION অপারেটরrennt UNION ALL অপারেটর কোয়েরির সকল সারি রিটার্ন করে এবং ডুপ্লিকেট সারি মুছে ফেলে না।
UNION অপারেটরের প্রতিটি SELECT-এ রেজাল্ট সেটে একই সংখ্যক কলাম থাকতে হবে সংশ্লিষ্ট ডেটা টাইপসহ।
UNION ALL অপারেটর সিনট্যাক্স
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn FROM bang [WHERE dieu_kien] UNION ALL SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn FROM bang [WHERE dieu_kien];
ভেরিয়েবল নাম বা মান
bieu_thuc1, bieu_thuc2, ... bieu_thucn
রিট্রিভ করতে চাওয়া কলাম বা ক্যালকুলেটেড ভ্যালু।
bang
রেকর্ড পেতে চাওয়া টেবিল। FROM ক্লজে কমপক্ষে ১ টি টেবিল থাকতে হবে।
WHERE dieu_kien
ঐচ্ছিক। রেকর্ড সিলেক্ট করার শর্ত।
নোট:
- ২টি SELECT স্টেটমেন্টে একই সংখ্যক এক্সপ্রেশন থাকতে হবে
- প্রতিটি SELECT স্টেটমেন্টের সংশ্লিষ্ট কলাম একই ডেটা টাইপের হতে হবে
- UNION ALL অপারেটর ডুপ্লিকেট সারি মুছে ফেলে না।
- UNION অপারেটরও দেখুন
উদাহরণ - একটি ইনফরমেশন ফিল্ড রিটার্ন
SELECT sanpham_id FROM sanpham UNION ALL SELECT sanpham_id FROM hangtonkho;
এই উদাহরণে, যদি sanpham_id sanpham এবং hangtonkho দুটি টেবিলে থাকে, তবে রেজাল্ট সেটে একাধিক sanpham_id থাকবে। ডুপ্লিকেট মুছে ফেলতে চাইলে UNION অপারেটর ব্যবহার করুন।
উদাহরণ - ORDER BY ব্যবহার
UNION ALL অপারেটর ORDER BY ক্লজ ব্যবহার করে কোয়েরি ফলাফল সর্ট করতে পারে।
SELECT danhba_id, danhba_ten FROM danhba WHERE ten_trang = 'QuanTriMang.com' UNION ALL SELECT congty_id, congty_ten FROM congty WHERE ten_trang = 'TrangCuaBan.com' ORDER BY 2;
এই উদাহরণে, যেহেতু দুটি SELECT স্টেটমেন্টে কলামের নাম ভিন্ন, তাই ORDER BY স্টেটমেন্টে কলাম রেফার করা রেজাল্ট সেটে পজিশন দিয়ে সহজ। উপরের উদাহরণে, আমরা danhba_ten / congty_ten আরোহী ক্রমে ফিল্টার করেছি ORDER BY 2 দিয়ে।
danhba_ten / congty_ten রেজাল্ট সেটে ২য় পজিশনে আছে।