SQL Server में UNION ALL ऑपरेटर
UNION ALL ऑपरेटर का उपयोग SQL Server में 2 या अधिक SELECT स्टेटमेंट्स से परिणाम सेट को संयोजित करने के लिए किया जाता है।
UNION ऑपरेटर के विपरीत, 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 क्लॉज में कम से कम 1 टेबल होना चाहिए।
WHERE dieu_kien
वैकल्पिक। चयनित रिकॉर्ड के लिए पूरी की जाने वाली शर्तें।
नोट:
- 2 SELECT स्टेटमेंट्स में समान संख्या में एक्सप्रेशंस होने चाहिए
- प्रत्येक SELECT स्टेटमेंट में संबंधित कॉलम की संख्या का डेटा प्रकार समान होना चाहिए
- UNION ALL ऑपरेटर डुप्लिकेट पंक्तियों को नहीं हटाता।
- अधिक UNION ऑपरेटर देखें
उदाहरण - एक सूचना फ़ील्ड वापस करें
SELECT sanpham_id
FROM sanpham
UNION ALL
SELECT sanpham_id
FROM hangtonkho;
यह उदाहरण परिणाम सेट में कई sanpham_id वापस करता है यदि वे sanpham और hangtonkho दोनों टेबल्स में प्रकट होते हैं। यदि आप डुप्लिकेट हटाना चाहते हैं, तो 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 परिणाम सेट में दूसरी स्थिति में है।