SQL सर्वर में स्तंभों में अनुगामी रिक्त स्थान और अद्यतन निकालें


147

मेरे पास SQL ​​Server तालिका में एक कॉलम में रिक्त स्थान है जिसे कहा जाता है Company Name

इस कॉलम के सभी डेटा में अनुगामी स्थान हैं।

मैं उन सभी को हटाना चाहता हूं, और मैं बिना किसी अनुगामी रिक्त स्थान के डेटा रखना चाहता हूं।

कंपनी का नाम जैसा है "Amit Tech Corp "

मैं चाहता हूं कि कंपनी का नाम हो "Amit Tech Corp"

जवाबों:


296

प्रयत्न SELECT LTRIM(RTRIM('Amit Tech Corp '))

LTRIM - स्ट्रिंग के बाईं ओर से किसी भी अग्रणी स्थान को निकालता है

RTRIM - सही से किसी भी रिक्त स्थान को निकालता है

उदाहरण के लिए:

update table set CompanyName = LTRIM(RTRIM(CompanyName))

12
यह ध्यान दिया जाना चाहिए कि TRIM अब SQL Server 2017+ में एक समर्थित विधि है।
डीजे कड़ी

3
मैं SQL प्रबंधन स्टूडियो v17.8.1 का उपयोग कर रहा हूं और जब मुझे TRIM फ़ंक्शन के लिए Intellisense मिलता है, जब मैं इसे निष्पादित करता हूं, तो यह कहता है कि यह मान्य नहीं है। मुझे ऊपर दिए गए कोड का उपयोग करना था। अजीब।
डेजर्टफोक्साज़

2
@DesertFoxAZ SQL प्रबंधन स्टूडियो संस्करण SQL सर्वर का संस्करण नहीं है
योनातन ड्रैगन

30

अनुगामी स्थानों को केवल ट्रिम करने के लिए आपको उपयोग करना चाहिए

UPDATE
    TableName
SET
    ColumnName = RTRIM(ColumnName)

हालाँकि, यदि आप सभी अग्रणी और अनुगामी रिक्त स्थान को ट्रिम करना चाहते हैं तो इसका उपयोग करें

UPDATE
    TableName
SET
    ColumnName = LTRIM(RTRIM(ColumnName))

15

अच्छी तरह से यहाँ गतिशील रूप से एक टेबल पर सभी varchar कॉलम TRIM के लिए एक अच्छी स्क्रिप्ट है:

--Just change table name
declare @MyTable varchar(100)
set @MyTable = 'MyTable'

--temp table to get column names and a row id
select column_name, ROW_NUMBER() OVER(ORDER BY column_name) as id into #tempcols from INFORMATION_SCHEMA.COLUMNS 
WHERE   DATA_TYPE IN ('varchar', 'nvarchar') and TABLE_NAME = @MyTable

declare @tri int
select @tri = count(*) from #tempcols
declare @i int
select @i = 0
declare @trimmer nvarchar(max)
declare @comma varchar(1)
set @comma = ', '

--Build Update query
select @trimmer = 'UPDATE [dbo].[' + @MyTable + '] SET '

WHILE @i <= @tri 
BEGIN

    IF (@i = @tri)
        BEGIN
        set @comma = ''
        END
    SELECT  @trimmer = @trimmer + CHAR(10)+ '[' + COLUMN_NAME + '] = LTRIM(RTRIM([' + COLUMN_NAME + ']))'+@comma
    FROM    #tempcols
    where id = @i

    select @i = @i+1
END

--execute the entire query
EXEC sp_executesql @trimmer

drop table #tempcols


2

TRIM SQL फ़ंक्शन का उपयोग करें ।

यदि आप SQL सर्वर आज़मा रहे हैं:

SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable

2

SQL सर्वर ट्रिम () फ़ंक्शन के लिए समर्थन नहीं करता है।

लेकिन आप प्रमुख स्थानों और RTRIM () को पीछे हटाने के लिए LTRIM () का उपयोग कर सकते हैं।

दोनों को हटाने के लिए इसे LTRIM (RTRIM (ColumnName)) के रूप में उपयोग कर सकते हैं।

update tablename
set ColumnName= LTRIM(RTRIM(ColumnName))

2

यदि आप SQL सर्वर (vNext से शुरू) या Azure SQL डेटाबेस का उपयोग कर रहे हैं तो आप नीचे दिए गए क्वेरी का उपयोग कर सकते हैं।

SELECT TRIM(ColumnName) from TableName;

अन्य SQL सर्वर डेटाबेस के लिए आप नीचे दिए गए क्वेरी का उपयोग कर सकते हैं।

SELECT LTRIM(RTRIM(ColumnName)) from TableName

LTRIM - बाईं ओर से रिक्त स्थान हटाता है

उदाहरण: select LTRIM(' test ') as trim='test '

RTRIM - रिक्त स्थान को दाईं ओर से हटाता है

उदाहरण: select RTRIM(' test ') as trim=' test'



0

खैर, यह निर्भर करता है कि आप SQL सर्वर के किस संस्करण का उपयोग कर रहे हैं।

SQL Server 2008 r2, 2012 और 2014 में आप बस उपयोग कर सकते हैं TRIM(CompanyName)

SQL सर्वर TRIM फ़ंक्शन

अन्य संस्करणों में आपको उपयोग करना होगा set CompanyName = LTRIM(RTRIM(CompanyName))


3
ट्रिम डिफ़ॉल्ट रूप से उपलब्ध नहीं है, यह एक DAX सुविधा है: msdn.microsoft.com/en-us/library/gg413422.aspx
Wouter

0

उदाहरण:

SELECT TRIM('   Sample   ');

परिणाम: 'Sample'

UPDATE TableName SET ColumnName = TRIM(ColumnName)

3
SQL सर्वर ट्रिम () फ़ंक्शन के लिए समर्थित नहीं है। लेकिन आप LTRIM () और RTRIM () का उपयोग कर सकते हैं। यदि आप दोनों को एक साथ उपयोग करना चाहते हैं तो आप LTRIM (RTRIM (ColumnName)) का उपयोग कर सकते हैं
Thilina Sandunsiri

यह एक Oracle क्वेरी है, OP
राउटर


0

Enter निकालने के लिए :

Update [table_name] set
[column_name]=Replace(REPLACE([column_name],CHAR(13),''),CHAR(10),'')

टैब निकालने के लिए :

Update [table_name] set
[column_name]=REPLACE([column_name],CHAR(9),'')

0

यदि हम भी सफेद रिक्त स्थान और अवांछित टैब को संभालना चाहते हैं-

नीचे की स्क्रिप्ट देखें और आज़माएं ( यूनिट टेस्टेड ) -

--Declaring
DECLARE @Tbl TABLE(col_1 VARCHAR(100));

--Test Samples
INSERT INTO @Tbl (col_1)
VALUES
('  EY     y            
Salem')
, ('  EY     P    ort       Chennai   ')
, ('  EY     Old           Park   ')
, ('  EY   ')
, ('  EY   ')
,(''),(null),('d                           
    f');

SELECT col_1 AS INPUT,
    LTRIM(RTRIM(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(col_1,CHAR(10),' ')
        ,CHAR(11),' ')
        ,CHAR(12),' ')
        ,CHAR(13),' ')
        ,CHAR(14),' ')
        ,CHAR(160),' ')
        ,CHAR(13)+CHAR(10),' ')
    ,CHAR(9),' ')
    ,' ',CHAR(17)+CHAR(18))
    ,CHAR(18)+CHAR(17),'')
    ,CHAR(17)+CHAR(18),' ')
    )) AS [OUTPUT]
FROM @Tbl;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.