Microsoft SQL Server
Sql सर्वर में स्प्लिट स्ट्रिंग फ़ंक्शन
खोज…
Sql सर्वर 2016 में एक स्ट्रिंग विभाजित करें
SQL Server 2016 में आखिरकार उन्होंने स्प्लिट स्ट्रिंग फंक्शन पेश किया है: STRING_SPLIT
पैरामीटर: यह दो मापदंडों को स्वीकार करता है
स्ट्रिंग :
किसी भी वर्ण प्रकार की अभिव्यक्ति है (जैसे कि नवरच, वरचर, नचर या चार)।
विभाजक :
किसी भी वर्ण प्रकार (जैसे nvarchar (1), varchar (1), nchar (1) या char (1)) की एक एकल वर्ण अभिव्यक्ति है, जिसका उपयोग संघनित तारों के लिए विभाजक के रूप में किया जाता है।
नोट: आपको हमेशा जांचना चाहिए कि क्या अभिव्यक्ति एक गैर-रिक्त स्ट्रिंग है।
उदाहरण:
Select Value
From STRING_SPLIT('a|b|c','|')
ऊपर के उदाहरण में
String : 'a|b|c'
separator : '|'
परिणाम :
+-----+
|Value|
+-----+
|a |
+-----+
|b |
+-----+
|c |
+-----+
यदि यह एक खाली स्ट्रिंग है:
SELECT value
FROM STRING_SPLIT('',',')
परिणाम :
+-----+
|Value|
+-----+
1 | |
+-----+
आप WHERE
क्लॉज जोड़कर उपरोक्त स्थिति से बच सकते हैं
SELECT value
FROM STRING_SPLIT('',',')
WHERE LTRIM(RTRIM(value))<>''
XML का उपयोग करके Sql Server 2008/2012/2014 में स्प्लिट स्ट्रिंग
चूंकि कोई STRING_SPLIT
फ़ंक्शन नहीं है, STRING_SPLIT
हमें पंक्तियों में स्ट्रिंग को विभाजित करने के लिए XML हैक का उपयोग करने की आवश्यकता है:
उदाहरण:
SELECT split.a.value('.', 'VARCHAR(100)') AS Value
FROM (SELECT Cast ('<M>' + Replace('A|B|C', '|', '</M><M>')+ '</M>' AS XML) AS Data) AS A
CROSS apply data.nodes ('/M') AS Split(a);
परिणाम:
+-----+
|Value|
+-----+
|A |
+-----+
|B |
+-----+
|C |
+-----+
टी-एसक्यूएल टेबल चर और एक्सएमएल
Declare @userList Table(UserKey VARCHAR(60))
Insert into @userList values ('bill'),('jcom'),('others')
--Declared a table variable and insert 3 records
Declare @text XML
Select @text = (
select UserKey from @userList for XML Path('user'), root('group')
)
--Set the XML value from Table
Select @text
--View the variable value
XML: \<group>\<user>\<UserKey>bill\</UserKey>\</user>\<user>\<UserKey>jcom\</UserKey>\</user>\<user>\<UserKey>others\</UserKey>\</user>\</group>