यहां एक ऐसा फ़ंक्शन है जिसे मैंने बनाया है जो "गैर-वर्णमाला वर्णों को हटाने" के समान है। SQL सर्वर में सभी गैर-वर्णमाला वर्णों को स्ट्रिंग से कैसे निकालें?
यह एक केस सेंसिटिव कॉलेशन का उपयोग करता है जो सक्रिय रूप से एक गैर-स्पेस/कैपिटल लेटर संयोजन की तलाश करता है और फिर स्पेस डालने के लिए STUFF फ़ंक्शन का उपयोग करता है। यह एक अदिश UDF है, इसलिए कुछ लोग तुरंत कहेंगे कि यह अन्य समाधानों की तुलना में धीमा होगा। उस धारणा के लिए, मैं कहता हूं, कृपया इसका परीक्षण करें। यह फ़ंक्शन किसी भी तालिका डेटा का उपयोग नहीं करता है और जितनी बार आवश्यक हो उतनी बार लूप करता है, इसलिए यह आपको बहुत अच्छा प्रदर्शन देगा।
Create Function dbo.Split_On_Upper_Case(@Temp VarChar(1000))
Returns VarChar(1000)
AS
Begin
Declare @KeepValues as varchar(50)
Set @KeepValues = '%[^ ][A-Z]%'
While PatIndex(@KeepValues collate Latin1_General_Bin, @Temp) > 0
Set @Temp = Stuff(@Temp, PatIndex(@KeepValues collate Latin1_General_Bin, @Temp) + 1, 0, ' ')
Return @Temp
End
इसे इस तरह कहें:
Select dbo.Split_On_Upper_Case('OneTwoThreeFour')
Select dbo.Split_On_Upper_Case('OneTwoThreeFour')
Select dbo.Split_On_Upper_Case('One')
Select dbo.Split_On_Upper_Case('OneTwoThree')
Select dbo.Split_On_Upper_Case('stackOverFlow')
Select dbo.Split_On_Upper_Case('StackOverFlow')