अधिकांश प्रमुख RDBMS में एक फ़ंक्शन होता है जो हमें अपने क्वेरी परिणामों को अल्पविराम से अलग सूची के रूप में वापस करने में सक्षम बनाता है।
अर्थात्, हम अल्पविराम से अलग की गई सूची में प्रत्येक पंक्ति को एक अलग सूची आइटम में बदलने के लिए ऐसे फ़ंक्शन का उपयोग कर सकते हैं।
कुछ अधिक लोकप्रिय RDBMS में इसे कैसे प्राप्त किया जाए, इसके उदाहरण नीचे दिए गए हैं।
MySQL
MySQL में GROUP_CONCAT()
है फ़ंक्शन जो हमें अल्पविराम से अलग की गई सूची में हमारे क्वेरी परिणामों को आउटपुट करने की अनुमति देता है:
SELECT GROUP_CONCAT(PetName)
FROM Pets;
परिणाम:
Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
हम ऐसे काम भी कर सकते हैं, जैसे, डुप्लीकेट मानों को हटाना (DISTINCT
. के साथ) क्लॉज), परिणामों के लिए एक ऑर्डर निर्दिष्ट करें (ORDER BY
. के साथ) खंड), और एक अलग सीमांकक निर्दिष्ट करें।
देखें GROUP_CONCAT()
अधिक उदाहरणों के लिए MySQL में कार्य करें।
Oracle डेटाबेस
Oracle डाटाबेस में LISTAGG()
है समारोह:
SELECT LISTAGG(last_name, ', ')
FROM employees
WHERE job_id = 'IT_PROG';
परिणाम:
Hunold, Ernst, Austin, Pataballa, Lorentz
MySQL की तरह, Oracle डेटाबेस भी हमें डुप्लिकेट मानों को हटाने, परिणामों के लिए एक ऑर्डर निर्दिष्ट करने, एक अलग विभाजक निर्दिष्ट करने आदि की अनुमति देता है।
देखें LISTAGG()
अधिक उदाहरणों के लिए Oracle में कार्य करें।
एसक्यूएल सर्वर
SQL सर्वर में STRING_AGG()
है अल्पविराम से अलग की गई सूची में हमारे परिणाम लौटाने का कार्य:
SELECT STRING_AGG(Genre, ',') AS Result FROM Genres
परिणाम:
Rock,Jazz,Country,Pop,Blues,Hip Hop,Rap,Punk
हम डुप्लिकेट मान भी हटा सकते हैं, परिणामों के लिए एक आदेश निर्दिष्ट कर सकते हैं, सीमांकक बदल सकते हैं, आदि।
अधिक उदाहरणों के लिए SQL सर्वर में अल्पविराम से अलग की गई सूची के रूप में क्वेरी परिणाम कैसे लौटाएं देखें।
मारियाडीबी
MySQL की तरह, MariaDB में भी एक GROUP_CONCAT()
है समारोह:
SELECT GROUP_CONCAT(PetName)
FROM Pets;
परिणाम:
Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
उसी नाम के MySQL के फ़ंक्शन की तरह, हम भी कुछ काम कर सकते हैं, डुप्लिकेट मानों को हटा दें (DISTINCT
के साथ) क्लॉज), परिणामों के लिए एक ऑर्डर निर्दिष्ट करें (ORDER BY
. के साथ) खंड), विभाजक बदलें, आदि।
हालाँकि, एक चीज़ जो MariaDB के पास MySQL से अधिक है, वह है LIMIT
खंड, जो हमें सूची में परिणामों की संख्या को सीमित करने की क्षमता प्रदान करता है।
मारियाडीबी देखें GROUP_CONCAT()
अधिक उदाहरणों के लिए।
PostgreSQL
Postgres में STRING_AGG()
है समारोह:
SELECT STRING_AGG(PetName, ',')
FROM Pets;
परिणाम:
Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
हम डुप्लिकेट मान भी हटा सकते हैं (DISTINCT
. के साथ) क्लॉज), परिणामों के लिए एक ऑर्डर निर्दिष्ट करें (ORDER BY
. के साथ) क्लॉज), विभाजक बदलें, आदि।
देखें STRING_AGG()
अधिक उदाहरणों के लिए PostgreSQL में कार्य करें।
SQLite
SQLite में, हम GROUP_CONCAT()
. का उपयोग कर सकते हैं हमारे क्वेरी परिणामों को अल्पविराम से अलग की गई सूची में बदलने के लिए कार्य करता है:
SELECT group_concat(FirstName)
FROM Employee;
परिणाम:
Andrew,Nancy,Jane,Margaret,Steve,Michael,Robert,Laura
देखें कैसे GROUP_CONCAT()
अधिक उदाहरणों के लिए SQLite में काम करता है।
एकाधिक कॉलम
उपरोक्त सभी उदाहरण सूची के लिए एकल कॉलम का उपयोग करते हैं। हम एक से अधिक कॉलम वाली सूची बनाने के लिए कई कॉलमों को भी जोड़ सकते हैं।
मान लीजिए हमारे पास निम्न डेटा वाली एक तालिका है:
SELECT TaskId, TaskName
FROM Tasks;
परिणाम:
TaskId TaskName ------ ------------ 1 Feed cats 2 Water dog 3 Feed garden 4 Paint carpet 5 Clean roof 6 Feed cats
SQL सर्वर में हम दोनों कॉलम को एक ही पंक्ति में आउटपुट करने के लिए निम्न कार्य कर सकते हैं:
SELECT STRING_AGG(CONCAT(TaskId, ') ', TaskName), ' ')
FROM Tasks
परिणाम:
1) Feed cats 2) Water dog 3) Feed garden 4) Paint carpet 5) Clean roof 6) Feed cats