वेब, डेटाबेस, क्लाउड सेवाओं और बीस्पोक बिजनेस मैनेजमेंट सॉफ्टवेयर में विशेषज्ञता के साथ 20 से अधिक वर्षों के अनुभव के साथ एक बहु-राष्ट्रीय टीम
  • व्यापारिक समाधान
    • सॉफ़्टवेयर
    • रोबोटिक प्रक्रिया स्वचालन
    • डेटाबेस परामर्श सेवाएं
      • डेटा एकीकरण
      • डाटावेयरहाउस सेवाएं
      • पावर बीआई
      • सर्वर अपग्रेड और डीबीए सेवाएं
    • वेब साइट डिजाइन
      • भुगतान द्वार
      • लोगो डिजाइन
      • वेब स्थानीयकरण और अनुवाद
      • वेब साइट अनुकूलन
      • वेबसाइट सुरक्षा
      • तकनीकी उपकरण
    • क्लाउड समाधान
      • अमेज़न वेब सेवाएँ
      • Google क्लाउड सेवाएं
      • माइक्रोसॉफ्ट ऐज़ुर
    • माइक्रोसॉफ्ट ऑफिस
    • सामाजिक मीडिया
  • अकादमी
    • हमारा परीक्षण वातावरण
    • डेटाबेस डिजाइन सीखना
      • मूल बातें
      • SQL सर्वर Pivot-Unpivot का उपयोग करना
      • SQL सर्वर डेटा
      • SQL सर्वर फ़ंक्शंस का उपयोग करना
      • एसक्यूएल सर्वर 2008 रखरखाव योजनाएँ
      • एसक्यूएल सर्वर तिथियों का उपयोग करना
      • ओपन क्वेरी प्राप्त करें
    • वेबसाइट डिजाइन सीखना
      • Ousia सामग्री प्रबंधन प्रणाली का निर्माण
      • ASP-NET
      • CSS
      • जावास्क्रिप्ट का उपयोग करना
    • क्लाउड और आईटी सेवाएं सीखना
      • टास्क शेड्यूलर त्रुटि 2147943645
      • एसएसएल का अनुरोध करना और ओपनएसएसएल सरल चरणों में पीएफएक्स फ़ाइल बनाना
    • सामाजिक मीडिया का उपयोग
      • Google समीक्षा के लिए पूछना
      • फेसबुक अकाउंट को पर्सनल से बिजनेस में बदलना
      • सोशल मीडिया छवि आकार
      • सोशल मीडिया छवियाँ सेट करने के लिए मेटा डेटा का उपयोग करना
      • सोशल मीडिया प्रयासों पर ध्यान केंद्रित करने का स्थान चुनना
  • हमारे बारे में
    • ब्लॉग
      • Google कोर अपडेट जनवरी 2020
      • अपनी वेबसाइट के लिए सामग्री का चुनाव कैसे करें विज्ञापन पत्रक
      • इंटरनेट पर वेबसाइटों के बारे में सबसे कष्टप्रद बातें
      • एक प्रवेश स्तर की गेमिंग मशीन का निर्माण
      • ऑनलाइन घोटाले को रोकना
      • गिग इकॉनमी के स्किमर्स
      • मुफ्त वेक्टर ग्राफिक्स के लिए शीर्ष 5 वेबसाइटें
      • गर्म मिर्च इंटरनेट बंद
    • करियर
      • अनुवादक अंग्रेज़ी-जापानी
      • अनुवादक अंग्रेज़ी-तुर्की
      • अनुवादक अंग्रेज़ी-पुर्तगाली
      • अनुवादक अंग्रेज़ी-स्पेनिश
    • टीम
      • अली अल अमीन
      • ऐसे हुरो
      • एड्रियन आनंदन
      • गेविन क्लेटन
      • चेस्टर कॉपरपॉट
      • सुनील कुमार
      • सूर्य मुक्कमल
      • साई गंगू
    • नियामक
    • पोर्टफोलियो
English (EN-GB)Português (PT)

SQL सर्वर में डेटा पंक्तियों और तालिकाओं में पाठ या ब्लॉब्स को विभाजित करना

डेटा पंक्तियों में किसी भी वर्ण द्वारा सीमांकित टेक्स्ट स्ट्रिंग सूची को विभाजित करने के लिए एक SQL सर्वर फ़ंक्शन। कई अन्य कार्यों के लिए आधार के रूप में उपयोग किया जाता है और तालिकाओं में चल रहा है

पंक्तियों को पाठ

SQL सर्वर फ़ंक्शंस का उपयोग करना

मेरे कुछ अन्य SQL फ़ंक्शन लेखों के बाद, यह एक ऐसा फ़ंक्शन है जिसका उपयोग हम अपने CMS दस्तावेज़ पुस्तकालय को खोजने के लिए कोड के भाग के रूप में करते हैं।

सबसे पहले फ़ंक्शन एक तालिका घोषित करता है जो बाद में वापस आ जाएगी।

फिर हम लौटाए गए रिकॉर्ड की मात्रा को कम करने के लिए किसी भी डुप्लीकेट डिलीमीटर को हटा देते हैं।

फिर हम स्ट्रिंग के माध्यम से लूप करते हैं और डिलीमीटर की प्रत्येक घटना पर शब्द को घोषित तालिका में सम्मिलित करते हैं जिसे हम शुरुआत में घोषित करते हैं।

यह फ़ंक्शन स्कीमा बाइंडिंग का उपयोग करता है, ताकि इसका उपयोग अन्य स्कीमा बाउंड फ़ंक्शंस में किया जा सके, जो कि एक टेबल से भी बंधे हो सकते हैं।

SQL सर्वर 2016 में, इनबिल्ट फ़ंक्शन STRING_SPLIT पेश किया गया था, और जब तक आपके पास संस्करण 130 से ऊपर की संगतता है, तब तक आप इसे एकल सीमांकक के लिए उपयोग कर सकते हैं।

जैसे-जैसे काम आगे बढ़ा है, हमने string_split को पार कर लिया है, और अब टेक्स्ट क्वालिफायर को संभाल सकते हैं, भले ही केवल कुछ कॉलम पर ही मौजूद हों।

SQL Code - Basic Function

CREATE FUNCTION [dbo].[TextToRows](@Delim NVARCHAR(10),@Value NVARCHAR(MAX))--Delimeter and Search StringRETURNS @Table TABLE(WordInt BIGINT IDENTITY(1,1) PRIMARY KEY,WordStr NVARCHAR(MAX)) WITH SCHEMABINDING --Return TableAS BEGINSET @Value=LTRIM(RTRIM(@Value))--Trim forward/trailing spacesWHILE (CHARINDEX(@Delim+@Delim,@Value,1)<>0) BEGINSET @Value=REPLACE(@Value,@Delim+@Delim,@Delim)--Remove double delims (if required)...ENDDECLARE @CurPos BIGINTSET @CurPos=0DECLARE @NextPos BIGINTSET @NextPos=CHARINDEX(@Delim,@Value,@CurPos+1)WHILE @NextPos>0 BEGININSERT INTO @Table(WordStr)SELECT REPLACE(SUBSTRING(@Value,@CurPos,(@NextPos-@CurPos)),@Delim,'')--Add first word if existsSET @CurPos=@NextPosSET @NextPos=CHARINDEX(@Delim,@Value,@CurPos+1)ENDINSERT INTO @Table(WordStr) SELECT REPLACE(SUBSTRING(@Value,@CurPos,LEN(@Value)),@Delim,'')--Add last word (or whole word)RETURNENDGOSELECT * FROM TextToRows(',','Gavin,Clayton,Test,Data')

Result

Gavin
Clayton
Test
Data

New SQL Code - With Text Qualifiers

CREATE FUNCTION dbo.[TextToRowsText](@Delim NVARCHAR(10),@Value NVARCHAR(MAX),@Text NVARCHAR(1))--Delimeter and Search StringRETURNS @Table TABLE(WordInt BIGINT IDENTITY(1,1) PRIMARY KEY,WordStr NVARCHAR(MAX)) --Return TableAS BEGINDECLARE @TextOn INT=(CASE WHEN LEFT(@Value,1)=@Text AND LEN(@Text)>0 THEN 1 ELSE 0 END)DECLARE @NextPos BIGINT=CHARINDEX((CASE WHEN @TextOn=1 THEN @Text+@Delim ELSE @Delim END),@Value,LEN(@Delim)+(@TextOn))WHILE @NextPos>0 BEGININSERT INTO @Table(WordStr) SELECT SUBSTRING(@Value,LEN(@Text)+@TextOn,(@NextPos-(LEN(@Text)+@TextOn)))SET @Value=SUBSTRING(@Value,@NextPos+@TextOn+LEN(@Delim),9999999)SET @TextOn=(CASE WHEN LEFT(@Value,1)=@Text AND LEN(@Text)>0 THEN 1 ELSE 0 END)SET @NextPos=CHARINDEX((CASE WHEN @TextOn=1 THEN @Text+@Delim ELSE @Delim END),@Value,LEN(@Text)+@TextOn)ENDSET @TextOn=(CASE WHEN LEFT(@Value,1)=@Text AND LEN(@Text)>0 THEN 1 ELSE 0 END)IF LEN(@Value)>0 INSERT INTO @Table(WordStr) SELECT SUBSTRING(@Value,LEN(@Text)+@TextOn,(CASE WHEN RIGHT(@Value,1)=@Text THEN LEN(@Value)-(LEN(@Text)+@TextOn) ELSE 9999999 END))RETURNENDGOSELECT * FROM dbo.TextToRowsText(',','Gavin,"Clayton","Test",Data','"')

पिवोट के साथ प्रयोग करें

आप अपने परिणाम सेट से एक तालिका बनाने के लिए, एकाधिक सीमांककों को विभाजित करने के लिए या PIVOT के साथ स्वयं पर लागू इस का उपयोग कर सकते हैं। नीचे एक डबल सीमांकित फ़ंक्शन है, जिसे वापस एक तालिका में विभाजित किया गया है।

इसके इस्तेमाल से आप कंप्यूटर के बीच भेजे जाने वाले कैरेक्टर की मात्रा को तेजी से कम कर सकते हैं। यदि आवश्यक हो तो आप लंबाई में 10 वर्णों तक एक सीमांकक का उपयोग कर सकते हैं।

अधिक: PIVOT उदाहरण का उपयोग कर SQL सर्वर

Double Delimited & Pivot

DECLARE @Str NVARCHAR(1000)='1;1.2;1.2.3;1.2.3.4'SELECT * FROM (SELECT ttr.WordStr Orig,ttr2.WordInt,ttr2.WordStrFROM dbo.TextToRows(';',@Str) ttrOUTER APPLY dbo.TextToRows('.',ttr.WordStr) ttr2) ttrdPIVOT (MAX(WordStr) FOR WordInt IN ([1],[2],[3],[4])) Piv

Double Delimited Pivot Result

Orig1234
11NULLNULLNULL
1.212NULLNULL
1.2.3123NULL
1.2.3.41234

लेखक

क्या ये सहायक था?

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink हमसे-संपर्क-करेंकूकी नीतिसाइटमैप

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
इस साइट की सेटिंग्स सभी कुकीज़ को अनुमति देने के लिए सेट हैं इन्हें हमारी कुकी नीति और सेटिंग पृष्ठ पर बदला जा सकता है। इस साइट का उपयोग जारी रखने के द्वारा आप कुकीज़ के उपयोग से सहमत हैं।
Ousia Logo
Logout
Ousia CMS Loader