SQL सर्वर और Azure में, यदि आपको दो या अधिक स्ट्रिंग्स को संयोजित करने की आवश्यकता है, तो आप T-SQL CONCAT()
का उपयोग कर सकते हैं समारोह। किसी भी बुनियादी संयोजन ऑपरेशन की तरह, यह फ़ंक्शन स्ट्रिंग्स को एक साथ, एंड-टू-एंड जोड़ता है।
लेकिन क्या होगा यदि आपको प्रत्येक स्ट्रिंग के बीच विभाजक जोड़ने की आवश्यकता है?
उदाहरण के लिए, आप स्ट्रिंग की अल्पविराम से अलग की गई सूची बनाना चाह सकते हैं। इस मामले में, आप प्रत्येक स्ट्रिंग के बीच एक अल्पविराम डालना चाहेंगे। इस तरह:
Paris, France
इसके बजाय:
ParisFrance
सौभाग्य से, T-SQL CONCAT_WS()
प्रदान करता है फ़ंक्शन जो आपको ठीक ऐसा करने में मदद करता है। CONCAT_WS()
फ़ंक्शन बिल्कुल CONCAT()
की तरह काम करता है फ़ंक्शन, सिवाय इसके कि इसमें एक अतिरिक्त तर्क की आवश्यकता होती है - वह विभाजक जिसका आप उपयोग करना चाहते हैं।
यहां एक उदाहरण दिया गया है:
SELECT CONCAT_WS(',','Paris', 'France') AS Location;
परिणाम:
Location ------------ Paris,France
और यदि आप चाहें तो इसमें एक स्थान जोड़ सकते हैं:
SELECT CONCAT_WS(', ','Paris', 'France') AS Location;
परिणाम:
Location ------------- Paris, France
विभाजक
यह कहने के लिए कुछ नहीं है कि विभाजक अल्पविराम होना चाहिए। विभाजक किसी भी वर्ण प्रकार की अभिव्यक्ति हो सकता है (char
, nchar
, nvarchar
, या varchar
)।
यहां पिछले वाले जैसा ही उदाहरण दिया गया है, सिवाय इसके कि यह एक अलग विभाजक का उपयोग करता है।
SELECT CONCAT_WS(' - ','Paris', 'France') AS Location;
परिणाम:
Location -------------- Paris - France
एक डेटाबेस उदाहरण
यहां एक डेटाबेस से डेटा पुनर्प्राप्त करने और अल्पविराम द्वारा अलग किए गए दो स्तंभों को एक में संयोजित करने का एक उदाहरण दिया गया है:
SELECT CONCAT_WS(', ', city.Name, country.Name ) AS Location FROM city INNER JOIN country ON city.CountryCode = country.Code WHERE country.Code = 'THA';
परिणाम:
Location --------------------------- Bangkok, Thailand Nonthaburi, Thailand Nakhon Ratchasima, Thailand Chiang Mai, Thailand Udon Thani, Thailand Hat Yai, Thailand Khon Kaen, Thailand Pak Kret, Thailand Nakhon Sawan, Thailand Ubon Ratchathani, Thailand Songkhla, Thailand Nakhon Pathom, Thailand
शून्य मान
यदि कोई तर्क NULL
है मान, SQL सर्वर उस मान और उसके विभाजक को छोड़ देगा, लेकिन यह अभी भी दूसरों को संसाधित करेगा।
उदाहरण:
SELECT CONCAT_WS(', ','Paris', NULL, 'France') AS Location;
परिणाम:
Location ------------- Paris, France
शून्य मान विभाजक
यदि विभाजक स्वयं एक NULL
है मान, संयोजन संचालन अभी भी किया जाएगा, लेकिन एक विभाजक के बिना।
उदाहरण:
SELECT CONCAT_WS(NULL,'Paris', NULL, 'France') AS Location;
परिणाम:
Location ----------- ParisFrance
यह T-SQL और MySQL के बीच के अंतरों में से एक है (MySQL में एक CONCAT_WS()
भी है। समारोह)। MySQL में, यदि विभाजक एक NULL
है मान, संयोजन का परिणाम NULL
. में होता है मूल्य।