JSON और स्ट्रिंग एकत्रीकरण

पूरा किया

SQL Server 2025 JSON सरणियों, JSON ऑब्जेक्ट्स और सीमांकित स्ट्रिंग्स के निर्माण के लिए नए एकत्रीकरण फ़ंक्शन पेश करता है। ये परिवर्धन संरचित आउटपुट जैसे एपीआई प्रतिक्रियाएं, रिपोर्ट, या सीधे टी-एसक्यूएल क्वेरी से लॉग निर्यात उत्पन्न करना आसान बनाते हैं। नए फ़ंक्शन आपको डेटा स्वरूपण को डेटाबेस परत में स्थानांतरित करने देते हैं, जिससे जटिल क्लाइंट-साइड परिवर्तन की आवश्यकता कम हो जाती है।

JSON और स्ट्रिंग एकत्रीकरण कार्यों का अवलोकन

आइए तीन नए एकत्रीकरण कार्यों को देखें:

JSON_ARRAYAGG

एक अभिव्यक्ति के मानों से एक JSON सरणी बनाता है। प्रत्येक पंक्ति का मान परिणामी JSON सरणी में एक तत्व बन जाता है। यह आईडी या नामों की सूची जैसे मानों की सरणियाँ उत्पन्न करना सरल बनाता है।

JSON_OBJECTAGG

कुंजी-मान जोड़े से एक JSON ऑब्जेक्ट बनाता है। पहला तर्क कुंजी को परिभाषित करता है, और दूसरा मान को परिभाषित करता है। यह मूल्य-युग्मन क्वेरी परिणामों से सीधे JSON दस्तावेज़ बनाना आसान बनाता है।

STRING_CONCAT_WS

NULL मानों को छोड़ते समय स्ट्रिंग्स को एक निर्दिष्ट विभाजक के साथ जोड़ता है। फ़ंक्शन का नाम स्ट्रिंग CONCAT विद सेपरेटर के लिए खड़ा है। यह नाम, टैग या अल्पविराम-सीमांकित सूचियों जैसे मूल्यों को जोड़ने का एक कुशल तरीका प्रदान करता है।

स्ट्रिंग संयोजन ऑपरेटर ||

SQL Server 2025 स्ट्रिंग संयोजन के विकल्प || के रूप में ANSI-मानक + ऑपरेटर का परिचय देता है। यह अधिक पोर्टेबल सिंटैक्स प्रदान करता है और अक्सर एक ही टेक्स्ट आउटपुट में कई कॉलम को संयोजित करते समय पसंद किया जाता है।

UNISTR फ़ंक्शन

UNISTR() एस्केप अनुक्रमों के आधार पर एक यूनिकोड स्ट्रिंग लौटाता है, जिससे आप कोड बिंदु या एस्केप नोटेशन द्वारा वर्ण सम्मिलित करने में सक्षम होते हैं। यह उन लिपियों को लिखते समय उपयोगी होता है जिनमें गैर-मुद्रण योग्य या बहुभाषी वर्ण शामिल होते हैं।

उदाहरण 1: क्वेरी परिणामों से JSON सरणियाँ और ऑब्जेक्ट बनाएँ

कल्पना कीजिए कि आपका डेटाबेस ग्राहक ऑर्डर डेटा को दो तालिकाओं में संग्रहीत करता है, Sales.Customer और Sales.SalesOrderHeader. एनालिटिक्स टीम को वेब डैशबोर्ड के साथ एकीकरण के लिए प्रत्येक ग्राहक और उनके ऑर्डर आईडी का सारांश देने वाली JSON रिपोर्ट की आवश्यकता होती है।

क्वेरी: JSON_ARRAYAGG और JSON_OBJECTAGG का उपयोग करें

निम्नलिखित क्वेरी प्रत्येक ग्राहक को उनके ऑर्डर आईडी की JSON सरणी के साथ पुनर्प्राप्त करती है, जो JSON ऑब्जेक्ट में लिपटी हुई है।

SELECT
    C.CustomerID,
    C.FirstName + ' ' + C.LastName AS CustomerName,
    JSON_OBJECTAGG(
        'Customer' : C.CustomerID,
        'Orders'   : JSON_ARRAYAGG(SOH.SalesOrderID)
    ) AS CustomerSummary
FROM Sales.Customer AS C
JOIN Sales.SalesOrderHeader AS SOH
    ON C.CustomerID = SOH.CustomerID
GROUP BY C.CustomerID, C.FirstName, C.LastName;

परिणाम

ग्राहक आईडी ग्राहक नाम ग्राहकसारांश
11001 जॉर्डन पैटरसन {"ग्राहक":11001,"ऑर्डर":[43722,43723,43724]}
11002 एलिसिया ट्रान {"ग्राहक":11002,"ऑर्डर":[43725,43726]}
11003 मार्को डियाज़ {"ग्राहक":11003,"आदेश":[43727]}

इस उदाहरण में, JSON_ARRAYAGG प्रत्येक ग्राहक के लिए सभी ऑर्डर आईडी को JSON सरणी में एकत्र करता है, और JSON_OBJECTAGG परिणाम को स्पष्ट कुंजी-मान जोड़े के साथ JSON ऑब्जेक्ट में लपेटता है। संपूर्ण संरचना एक T-SQL क्वेरी में निर्मित होती है।

उदाहरण 2: STRING_CONCAT_WS का उपयोग करके टेक्स्ट आउटपुट को प्रारूपित करें

मार्केटिंग टीम को ईमेल अभियान के लिए अल्पविराम द्वारा अलग किए गए प्रत्येक ग्राहक के खरीदे गए उत्पाद नामों की एक सूची की आवश्यकता होती है। STRING_CONCAT_WS फ़ंक्शन इन परिणामों को सफाई से उत्पन्न कर सकता है, किसी भी NULL मानों को छोड़ सकता है।

क्वेरी: एक विभाजक के साथ उत्पाद नामों में शामिल हों

निम्न क्वेरी प्रत्येक ग्राहक को उनके द्वारा खरीदे गए उत्पादों की अल्पविराम-अलग सूची के साथ पुनर्प्राप्त करती है।

SELECT
    C.CustomerID,
    C.FirstName + ' ' + C.LastName AS CustomerName,
    STRING_CONCAT_WS(', ',
        P.Name
    ) AS ProductsPurchased
FROM Sales.Customer AS C
JOIN Sales.SalesOrderHeader AS SOH
    ON C.CustomerID = SOH.CustomerID
JOIN Sales.SalesOrderDetail AS SOD
    ON SOH.SalesOrderID = SOD.SalesOrderID
JOIN Production.Product AS P
    ON SOD.ProductID = P.ProductID
GROUP BY C.CustomerID, C.FirstName, C.LastName;

परिणाम

ग्राहक आईडी ग्राहक नाम उत्पादखरीदे गए
11001 जॉर्डन पैटरसन टूरिंग-2000 ब्लू, 50, माउंटेन-100 ब्लैक, 44
11002 एलिसिया ट्रान रोड-250 येलो, 44, माउंटेन-200 रेड, 48
11003 मार्को डियाज़ टूरिंग-3000 ब्लू, 62

यहां, STRING_CONCAT_WS उत्पाद नामों को अल्पविराम के साथ जोड़ता है और मैन्युअल COALESCEया ISNULL तर्क से बचते हुए, स्वचालित रूप से NULL प्रविष्टियों को अनदेखा करता है।

उदाहरण 3: एपीआई आउटपुट के लिए JSON और सीमांकित पाठ को संयोजित करें

आप एपीआई प्रतिक्रिया के लिए संरचित डेटा तैयार करने के लिए इन कार्यों का एक साथ उपयोग भी कर सकते हैं। निम्न क्वेरी ऑब्जेक्ट्स की एक JSON सरणी बनाता है जहाँ प्रत्येक ऑब्जेक्ट में ग्राहक का नाम और अल्पविराम-सीमांकित उत्पाद सूची होती है।

SELECT
    JSON_ARRAYAGG(
        JSON_OBJECTAGG(
            'Customer' : C.FirstName + ' ' + C.LastName,
            'Products' : STRING_CONCAT_WS(', ', P.Name)
        )
    ) AS ApiOutput
FROM Sales.Customer AS C
JOIN Sales.SalesOrderHeader AS SOH
    ON C.CustomerID = SOH.CustomerID
JOIN Sales.SalesOrderDetail AS SOD
    ON SOH.SalesOrderID = SOD.SalesOrderID
JOIN Production.Product AS P
    ON SOD.ProductID = P.ProductID
GROUP BY C.CustomerID, C.FirstName, C.LastName;

परिणाम नमूना

[
  {"Customer":"Jordan Patterson","Products":"Touring-2000 Blue, 50, Mountain-100 Black, 44"},
  {"Customer":"Alicia Tran","Products":"Road-250 Yellow, 44, Mountain-200 Red, 48"},
  {"Customer":"Marco Diaz","Products":"Touring-3000 Blue, 62"}
]

कोई एप्लिकेशन सीधे इस संरचना का उपभोग करता है या इसे SQL सर्वर प्रबंधन स्टूडियो (SSMS) या Azure डेटा स्टूडियो जैसे टूल के माध्यम से JSON दस्तावेज़ के रूप में निर्यात करता है।

सारांश

SQL Server 2025 जोड़ता है JSON_ARRAYAGG, और JSON_OBJECTAGGT-SQL STRING_CONCAT_WS के भीतर संरचित पाठ और JSON आउटपुट को सरल बनाने के लिए। ये फ़ंक्शन आपको बाहरी कोड के बिना क्वेरीज़ से एप्लिकेशन-तैयार डेटा जनरेट करने देते हैं। चाहे आप JSON पेलोड तैयार कर रहे हों, रिपोर्ट बना रहे हों, या API प्रतिक्रियाओं को प्रारूपित कर रहे हों, ये एकत्रीकरण सुविधाएँ SQL Server 2025 को आधुनिक डेटा अनुप्रयोगों के लिए अधिक बहुमुखी प्लेटफ़ॉर्म बनाती हैं।