[sql] SQL Server에서 문자열을 자르는 방법?

SQL Server 2017에서는이 구문을 사용할 수 있지만 이전 버전에서는 사용할 수 없습니다.

SELECT Name = TRIM(Name) FROM dbo.Customer;



답변

SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer


답변

오른쪽에서 자르려면 다음을 사용하십시오.

SELECT RTRIM(Names) FROM Customer

왼쪽을 자르려면 다음을 사용하십시오.

SELECT LTRIM(Names) FROM Customer

양쪽을 다듬 으려면 다음을 사용하십시오.

SELECT LTRIM(RTRIM(Names)) FROM Customer


답변

나는 이것이 일회성 데이터 스크러빙 연습이라고 가정한다. 완료되면 향후 데이터 불량을 방지하기 위해 데이터베이스 제약 조건을 추가해야합니다. 예 :

ALTER TABLE Customer ADD
   CONSTRAINT customer_names__whitespace
      CHECK (
             Names NOT LIKE ' %'
             AND Names NOT LIKE '% '
             AND Names NOT LIKE '%  %'
            );

또한 문제를 일으킬 수있는 다른 문자 (탭, 캐리지 리턴, 줄 바꿈 등)는 허용하지 마십시오.

또한으로 그 이름을 나눌 수있는 좋은 시간이 될 수 있습니다 family_name, first_name등 :


답변

SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,'   ',' '),CHAR(13), ' '),char(10), ' ')))
from author


답변

ssis 표현식을 사용하는 SQL Server 2008 r2에는 트림 기능이 있습니다.

SSIS (SQL Server Integration Services)는 광범위한 데이터 마이그레이션 작업을 수행하는 데 사용할 수있는 Microsoft SQL Server 데이터베이스 소프트웨어의 구성 요소입니다.

이 링크에서 전체 설명을 찾을 수 있습니다

http://msdn.microsoft.com/en-us/library/ms139947.aspx

그러나이 함수 자체에는 그 페이지에서 msdn으로 언급되는 제한이 있습니다. 하지만 이것은 SQL Server 2008 r2에 있습니다.

TRIM("   New York   ") .The return result is "New York".


답변

“REPLACE”의 확장 버전 :

REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]


답변