SQL ServerテーブルのCompany Name
という列の末尾にスペースがあります。
この列のすべてのデータの末尾にスペースがあります。
これらすべてを削除し、末尾にスペースを入れずにデータを保持したいと思います。
会社名は"Amit Tech Corp "
のようなものです
会社名を"Amit Tech Corp"
にします。
末尾のスペースを削除するためだけに使うべきです
UPDATE
TableName
SET
ColumnName = RTRIM(ColumnName)
ただし、前後のスペースをすべて削除したい場合は、これを使用してください。
UPDATE
TableName
SET
ColumnName = LTRIM(RTRIM(ColumnName))
これは、テーブル上のすべての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
update MyTable set CompanyName = rtrim(CompanyName)
TRIM SQL関数を使用してください。
SQL Serverを使用している場合は、次のことを試してください。
SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable
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'
SQL ServerはTrim()関数をサポートしません。
ただし、LTRIM()を使用して先頭のスペースを削除し、RTRIM()を使用して末尾のスペースを削除することはできます。
両方を削除するには、LTRIM(RTRIM(ColumnName))として使用できます。
update tablename
set ColumnName= LTRIM(RTRIM(ColumnName))
ETLを使用してExcelファイルからデータを抽出したところ、同じ問題が発生し、最終的に解決策が見つかりました。
https://www.codeproject.com/Tips/330787/LTRIM-RTRIM-doesn-t-always-work
それが役に立てば幸い ;)
それは、使用しているSQL Serverのバージョンによって異なります。
SQL Server 2008 R2、2012、2014では、単にTRIM(CompanyName)
を使用できます。
他のバージョンではset CompanyName = LTRIM(RTRIM(CompanyName))
を使わなければなりません
例:
SELECT TRIM(' Sample ');
結果:'Sample'
UPDATE TableName SET ColumnName = TRIM(ColumnName)
削除するにはを入力:
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),'')
SELECT TRIM(ColumnName) FROM dual;