এসকিউএল সার্ভারে ট্রেলিং স্পেসগুলি এবং কলামগুলিতে আপডেট সরিয়ে দিন


147

আমার কাছে ডাকা একটি এসকিউএল সার্ভার টেবিলের কলামে ফাঁকা স্থান রয়েছে 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
এটি লক্ষ করা উচিত যে টিআরআইএম এখন এসকিউএল সার্ভার 2017+ এ একটি সমর্থিত পদ্ধতি।
ডিজে সিপ

3
আমি এসকিউএল ম্যানেজমেন্ট স্টুডিও v17.8.1 ব্যবহার করছি এবং যখন আমি ট্রিম ফাংশনের জন্য ইন্টেলিসেন্স পাই, যখন আমি এটি সম্পাদন করি তখন এটি বলে যে এটি বৈধ নয়। আমাকে উপরের কোডটি ব্যবহার করতে হয়েছিল। রহস্যময়।
DesertFoxAZ

2
@ ডেজারফক্সএজেড এসকিউএল ম্যানেজমেন্ট স্টুডিওর সংস্করণটি এসকিউএল সার্ভারের সংস্করণ নয়
জোনাতান ড্রাগন

30

ট্রেলিং স্পেসগুলি কেবল ছাঁটাই করতে আপনার ব্যবহার করা উচিত

UPDATE
    TableName
SET
    ColumnName = RTRIM(ColumnName)

তবে, আপনি যদি সমস্ত নেতৃস্থানীয় এবং অনুসরণযোগ্য স্থান ট্রিম করতে চান তবে এটি ব্যবহার করুন

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

15

ভাল একটি টেবিলে সমস্ত বারচার কলামগুলি গতিশীলভাবে ট্রিম করার জন্য এখানে একটি দুর্দান্ত স্ক্রিপ্ট রয়েছে:

--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

ট্রিম এসকিউএল ফাংশনটি ব্যবহার করুন ।

আপনি যদি এসকিউএল সার্ভার ব্যবহার করেন তবে চেষ্টা করুন:

SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable

2

এসকিউএল সার্ভার ট্রিম () ফাংশনের জন্য সমর্থন করে না।

তবে আপনি শীর্ষস্থানীয় স্থানগুলি সরিয়ে নিতে এলটিআরআইএম () এবং পিছনের স্থানগুলি সরাতে আরটিআরআইএম () ব্যবহার করতে পারেন।

উভয় অপসারণ করতে এটি এলটিআরআইএম (আরটিআরআইএম (কলামনাম)) হিসাবে ব্যবহার করতে পারেন।

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

2

আপনি যদি এসকিউএল সার্ভার (vNext দিয়ে শুরু করে) বা অ্যাজুরে এসকিউএল ডেটাবেস ব্যবহার করছেন তবে নীচের প্রশ্নটি ব্যবহার করতে পারেন।

SELECT TRIM(ColumnName) from TableName;

অন্যান্য এসকিউএল সার্ভার ডেটাবেসের জন্য আপনি নীচের কোয়েরিটি ব্যবহার করতে পারেন।

SELECT LTRIM(RTRIM(ColumnName)) from TableName

এলটিআরআইএম - বাম থেকে স্পেসগুলি সরিয়ে দেয়

উদাহরণ: select LTRIM(' test ') as trim='test '

আরটিআরআইএম - ডান থেকে স্পেসগুলি সরিয়ে দেয়

উদাহরণ: select RTRIM(' test ') as trim=' test'


1

ইটিএল এবং ফিনালির সাহায্যে এক্সেল ফাইল থেকে ডেটা উত্তোলনের পরে আমার একই সমস্যা হয়েছিল আমি সেখানে সমাধান পেয়েছি:

https://www.codeproject.com/Tips/330787/LTRIM-RTRIM-doesn-t-always-work

আশা করি এটা সাহায্য করবে ;)


0

আচ্ছা, আপনি যে এসকিউএল সার্ভারটি ব্যবহার করছেন তার উপর এটি নির্ভর করে।

এসকিউএল সার্ভার ২০০৮ আর ২, ২০১২ এবং ২০১৪ এ আপনি কেবল ব্যবহার করতে পারেন TRIM(CompanyName)

এসকিউএল সার্ভার ট্রিম ফাংশন

অন্যান্য সংস্করণে আপনাকে ব্যবহার করতে হবে set CompanyName = LTRIM(RTRIM(CompanyName))


3
ট্রিমটি ডিফল্টরূপে উপলভ্য নয়, এটি একটি DAX বৈশিষ্ট্য: msdn.microsoft.com/en-us/library/gg413422.aspx
ওয়াউটার

0

উদাহরণ:

SELECT TRIM('   Sample   ');

ফলাফল: 'Sample'

UPDATE TableName SET ColumnName = TRIM(ColumnName)

3
এসকিউএল সার্ভার ট্রিম () ফাংশনের জন্য সমর্থন করে না। তবে আপনি এলটিআরআইএম () এবং আরটিআরআইএম () ব্যবহার করতে পারেন। আপনি উভয়কেই একসাথে ব্যবহার করতে চাইলে আপনি এলটিআরআইএম (আরটিআরআইএম (কলামনাম)) ব্যবহার করতে পারেন
থিলিনা সানডুনসিরি

এটি একটি ওরাকল ক্যোয়ারী, ওপি মাইক্রোসফ্ট এসকিউএল সার্ভার
ওয়াউটার 14


0

প্রবেশ সরাতে :

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;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.