답변:
시험
SELECT LTRIM(RTRIM('Amit Tech Corp '))
LTRIM
-문자열의 왼쪽에서 선행 공백을 제거합니다
RTRIM
-오른쪽에서 공백을 제거합니다
전의:
update table set CompanyName = LTRIM(RTRIM(CompanyName))
다음은 테이블의 모든 varchar 열을 동적으로 트리밍하는 멋진 스크립트입니다.
--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
SQL Server는 Trim () 함수를 지원하지 않습니다.
그러나 LTRIM ()을 사용하여 선행 공백을 제거하고 RTRIM ()을 사용하여 후행 공백을 제거 할 수 있습니다.
LTRIM (RTRIM (ColumnName))으로 사용하여 둘 다 제거 할 수 있습니다.
update tablename
set ColumnName= LTRIM(RTRIM(ColumnName))
vNext로 시작 하는 SQL Server 또는 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'
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)
공백과 원치 않는 탭도 처리하려면
아래 스크립트를 확인하고 시도하십시오 ( Unit Tested )
--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;