web-dev-qa-db-ja.com

SQL Serverで末尾のスペースを削除して列を更新する

SQL ServerテーブルのCompany Nameという列の末尾にスペースがあります。

この列のすべてのデータの末尾にスペースがあります。

これらすべてを削除し、末尾にスペースを入れずにデータを保持したいと思います。

会社名は"Amit Tech Corp "のようなものです

会社名を"Amit Tech Corp"にします。

120
AGM Raja

SELECT LTRIM(RTRIM('Amit Tech Corp '))を試す

LTRIM - 文字列の左側から先行するスペースを削除します

RTRIM - 右からスペースを削除します

例:

update table set CompanyName = LTRIM(RTRIM(CompanyName))
257
rs.

末尾のスペースを削除するためだけに使うべきです

UPDATE
    TableName
SET
    ColumnName = RTRIM(ColumnName)

ただし、前後のスペースをすべて削除したい場合は、これを使用してください。

UPDATE
    TableName
SET
    ColumnName = LTRIM(RTRIM(ColumnName))
27
Robin Day

これは、テーブル上のすべてのvarcharカラムを動的にトリムするためのNiceスクリプトです。

--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
14
Hiram
update MyTable set CompanyName = rtrim(CompanyName)
7

TRIM SQL関数を使用してください。

SQL Serverを使用している場合は、次のことを試してください。

SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable
2
Simon

SQL Server(vNextで始まる)またはAzure SQL Databaseを使用している場合あなたは以下のクエリを使用することができます。

SELECT TRIM(ColumnName) from TableName;

他のSQL Serverデータベースの場合は、以下のクエリを使用できます。

SELECT LTRIM(RTRIM(ColumnName)) from TableName

LTRIM - 左からスペースを削除

例:select LTRIM(' test ') as trim = 'test '

RTRIM - 右側からスペースを削除します

例:select RTRIM(' test ') as trim = ' test'

2
Sukanta Saha

SQL ServerはTrim()関数をサポートしません。

ただし、LTRIM()を使用して先頭のスペースを削除し、RTRIM()を使用して末尾のスペースを削除することはできます。

両方を削除するには、LTRIM(RTRIM(ColumnName))として使用できます。

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

ETLを使用してExcelファイルからデータを抽出したところ、同じ問題が発生し、最終的に解決策が見つかりました。

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

それが役に立てば幸い ;)

1
Salim Lyoussi

それは、使用しているSQL Serverのバージョンによって異なります。

SQL Server 2008 R2、2012、2014では、単にTRIM(CompanyName)を使用できます。

SQL ServerのTRIM関数

他のバージョンではset CompanyName = LTRIM(RTRIM(CompanyName))を使わなければなりません

1
Daniel Urdaneta

例:

SELECT TRIM('   Sample   ');

結果:'Sample'

UPDATE TableName SET ColumnName = TRIM(ColumnName)
0
pritam

削除するにはを入力:

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
Pieter
SELECT TRIM(ColumnName) FROM dual;
0
shevin