SQL सर्वर में स्ट्रिंग ट्रिम कैसे करें?


132

SQL Server 2017 में, आप इस सिंटैक्स का उपयोग कर सकते हैं, लेकिन पहले के संस्करणों में नहीं:

SELECT Name = TRIM(Name) FROM dbo.Customer;

जवाबों:


239
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer

3
यह करने का सबसे आसान तरीका है, बस अपने कॉलम को वापस करने के लिए याद रखें
मीलों

1
@ मीलों - मैंने पूर्णता के लिए उपनाम जोड़ा।
बजे बेन हॉफस्टीन

2
मैं समझता हूं कि मूल्य के ट्रिमिंग का उपयोग करने का यह सही तरीका है। लेकिन क्या आप बता सकते हैं कि LTRIM और RTRIM दोनों का उपयोग क्यों करें जब हम इसके बजाय सिर्फ TRIM का उपयोग कर सकते थे?
कोड बस्टर

6
@ कोडबस्टर: SQL सर्वर में 2014 संस्करण में भी TRIM फ़ंक्शन परिभाषित नहीं है।
alextansc

7
SQL सर्वर अब 2017 संस्करण में TRIM है। docs.microsoft.com/en-us/sql/t-sql/functions/trim-transact-sql
goodeye

64

दाईं ओर ट्रिम करने के लिए:

SELECT RTRIM(Names) FROM Customer

बाईं ओर ट्रिम करने के लिए, उपयोग करें:

SELECT LTRIM(Names) FROM Customer

दोनों पक्षों पर ट्रिम करने के लिए, उपयोग करें:

SELECT LTRIM(RTRIM(Names)) FROM Customer

5
संयोग से, TRR के बिना LTRIM और RTRIM फ़ंक्शन को शामिल करने के लिए Microsoft के पास क्या संभावित कारण हो सकता है? यह अजीब है।
बेन हॉफस्टीन

क्योंकि यह बेमानी है। आप LTRIM (RTRIM (var)) के साथ एक ही बात को पूरा कर सकते हैं।
काबी

52
हां, लेकिन यह दो फ़ंक्शन कॉल है। आप कह सकते हैं कि वे सभी बेमानी हैं क्योंकि TSQL के पास CHARINDEX और SUBSTRING है, लेकिन यह देखने के लिए एक मूर्खतापूर्ण तरीका है।
बेन हॉफस्टीन

9
यह बिल्कुल बेमानी नहीं है। TRIM नामक एक भी फ़ंक्शन की पेशकश न करना उपयोगकर्ता पर वाक्यविन्यास का बोझ डालता है।
जोएलक

3
यह शायद एक निरीक्षण था, या उन विशेषताओं में से एक है जो कुल्हाड़ी मार गई क्योंकि प्रत्येक सुविधा -100 बिंदुओं पर शुरू होती है (जो वास्तव में प्राथमिकता वाले फीचर सेट, IMHO के बजाय असंगत फीचर सेट की ओर जाता है)।
सिर

7

मुझे लगता है कि यह एक बार की जाने वाली डेटा स्क्रबिंग एक्सरसाइज है। एक बार हो जाने के बाद, आप भविष्य में खराब डेटा को रोकने के लिए डेटाबेस की कमी को सुनिश्चित करते हैं

ALTER TABLE Customer ADD
   CONSTRAINT customer_names__whitespace
      CHECK (
             Names NOT LIKE ' %'
             AND Names NOT LIKE '% '
             AND Names NOT LIKE '%  %'
            );

अन्य वर्णों (टैब, कैरिज रिटर्न, लाइन फीड, आदि) को अस्वीकार करने पर विचार करें, जो समस्या पैदा कर सकते हैं।

यह भी में उन नामों को विभाजित करने के लिए एक अच्छा समय हो सकता है family_name, first_name, आदि :)


4
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,'   ',' '),CHAR(13), ' '),char(10), ' ')))
from author

0

sql सर्वर 2008 r2 में ssis अभिव्यक्ति के साथ हमारे पास ट्रिम फ़ंक्शन है।

SQL सर्वर एकीकरण सेवाएँ (SSIS) Microsoft SQL सर्वर डेटाबेस सॉफ़्टवेयर का एक घटक है जिसका उपयोग डेटा माइग्रेशन कार्यों की एक विस्तृत श्रृंखला को करने के लिए किया जा सकता है।

आप इस लिंक पर पूरा विवरण पा सकते हैं

http://msdn.microsoft.com/en-us/library/ms139947.aspx

लेकिन इस समारोह में अपने आप में कुछ सीमाएँ हैं जिनका उल्लेख उस पृष्ठ पर msdn द्वारा भी किया गया है। लेकिन यह sql सर्वर 2008 r2 में है

TRIM("   New York   ") .The return result is "New York".

3
यह एमएस SQL ​​के साथ कुछ भी नहीं है सिवाय इसके कि यह डेटाबेस के साथ बंडल किए गए उत्पाद में है।
सिर

-1

"REPLACE" का विस्तारित संस्करण:

REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.