SQL सर्वर 2017 के आने से पहले, MySQL GROUP_CONCAT()
के समकक्ष कोई T-SQL नहीं था। समारोह। यह फ़ंक्शन आपको परिणाम सेट को अल्पविराम से अलग की गई सूची के रूप में वापस करने की अनुमति देता है, प्रत्येक पंक्ति को एक अलग पंक्ति के रूप में सूचीबद्ध करने के विपरीत (एक सामान्य परिणाम सेट के साथ)।
SQL सर्वर 2017 से पहले, यदि आप अपने परिणाम को अल्पविराम से अलग की गई सूची में रखना चाहते हैं, तो आपको शायद STUFF()
के संयोजन का उपयोग करके वैकल्पिक हल खोजने की आवश्यकता होगी। , FOR XML
, और PATH()
।
हालाँकि, T-SQL में अब STRING_AGG()
है फ़ंक्शन जो SQL सर्वर 2017 से उपलब्ध है। यह फ़ंक्शन MySQL के GROUP_CONCAT()
के समान ही कार्य करता है। समारोह (कुछ मामूली अंतर के साथ)।
सिंटैक्स
STRING_AGG()
. का सिंटैक्स फ़ंक्शन इस प्रकार है:
STRING_AGG ( expression, separator ) [ <order_clause> ] <order_clause> ::= WITHIN GROUP ( ORDER BY <order_by_expression_list> [ ASC | DESC ] )
जहां expression
किसी भी प्रकार की अभिव्यक्ति है। एक्सप्रेशन को NVARCHAR
. में बदला जाता है या VARCHAR
संयोजन के दौरान प्रकार। गैर-स्ट्रिंग प्रकारों को NVARCHAR
. में रूपांतरित किया जाता है टाइप करें।
जहां विभाजक NVARCHAR
. का एक एक्सप्रेशन है या VARCHAR
प्रकार जो कि संयोजित तारों के लिए विभाजक के रूप में उपयोग किया जाता है। यह शाब्दिक या परिवर्तनशील हो सकता है।
(वैकल्पिक) ऑर्डर क्लॉज में WITHIN GROUP
शामिल हैं इसके बाद ORDER BY ASC
या ORDER BY DESC
कोष्ठकों में। ASC
आरोही क्रम में परिणाम का आदेश देता है। यह व्यतिक्रम मूल्य है। DESC
परिणाम को अवरोही क्रम में क्रमित करता है।
उदाहरण
यहां STRING_AGG()
का एक त्वरित उदाहरण दिया गया है समारोह:
SELECT STRING_AGG(Genre, ',') AS Result FROM Genres;
परिणाम:
Result -------------------------------------------- Rock,Jazz,Country,Pop,Blues,Hip Hop,Rap,Punk
जैसा कि आप देख सकते हैं, परिणाम सेट को अल्पविराम से अलग की गई सूची के रूप में सूचीबद्ध किया गया है। ऐसा इसलिए है क्योंकि हमारा दूसरा तर्क अल्पविराम है, जो निर्दिष्ट करता है कि अल्पविराम को विभाजक के रूप में इस्तेमाल किया जाना चाहिए।
यहां वही परिणाम सेट किया गया है, लेकिन बिना STRING_AGG()
. के समारोह:
SELECT Genre AS Result FROM Genres;
परिणाम:
Result ------- Rock Jazz Country Pop Blues Hip Hop Rap Punk
तो बस एक सामान्य परिणाम सेट।
अधिक उदाहरणों के लिए, जैसे समूहबद्ध करना, शून्य मानों को संभालना, और परिणामों को क्रमबद्ध करना, SQL सर्वर में अल्पविराम से अलग की गई सूची के रूप में क्वेरी परिणाम कैसे लौटाएं देखें।