SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo

mssql에서 공백제거 하는 쿼리

공백은 제거 하는 방법은 여러가지가 있다.

왼쪽 공백제거, 오른쪽 공백제거, 왼쪽 오른쪽 공백제거, 모든 공백제거

위의 방법에 대한 sql Query이다.

테스트 문장은 ' 이렇게 되는건가요? '

총 공백은 3곳이 있다. (왼쪽, 중간, 오른쪽)

오른쪽 공백제거

select ' 이렇게 되는건가요? ' as word, rtrim(' 이렇게 되는건가요? ')as r_trim
SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo
Ltrim 공백제거

왼쪽 공백제거

select ' 이렇게 되는건가요? ' as word, ltrim(' 이렇게 되는건가요? ')as l_trim
SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo
Rtrim 공백제거

양쪽 공백 제거

select ' 이렇게 되는건가요? ' as word, ltrim(rtrim(' 이렇게 되는건가요? '))as l_r_trim
SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo
Ltrim과 Rtrim을 같이 사용

모든 공백 제거

select ' 이렇게 되는건가요? ' as word, replace(' 이렇게 되는건가요? ',' ', '')as word_replace
SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo
모든공백 제거

위의 쿼리를 통해서 MS-SQL에서 공백 제거가 가능하다.

TRIM : 공백 제거하기

TRIM 함수는 공백(space)을 제거하는 데 사용합니다. 단, 문자열 중간에 있는 공백은 제거할 수 없습니다.

TRIM ('문자열' or 열 이름)

다음 코드를 실행해 보면 문자열 중간에 있는 공백을 제외한 모든 공백이 제거된 것을 확인할 수 있습니다.

SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo

실행 결과

SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo

공백이 어떻게 제거되는지 확인하기 위해 일부러 공백을 제거하려는 대상 앞뒤에 start 문자열과 end 문자열을 붙였습니다. 결과를 보면 공백이 모두 제거되어 start- space -end가 출력됩니다. 설명한 대로 -과 space 사이에 있는 공백은 문자열 중간에 있는 공백이므로 제거되지 않았습니다.

신간 소식 구독하기

뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.

SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo

MS SQL 쿼리문에서 공백 제거가 필요한 경우가 발생할 수 있습니다. 데이터에 공백이 들어가서 쿼리문 수행 시 원하는 결괏값이 나오지 않는 경우가 있습니다.

쿼리문 응답 속도면에서 공백 제거 함수인 LTRIM, RTRIM, TRIM 함수를 사용하지 않는게 좋고 필요할 때만 사용하는 게 좋을 것 같습니다.

그럼 공백 제거 함수인 LTRIM, RTIRM, TRIM 함수에 대해서 알아보죠.

포스트 기준

- Microsoft SQL Server 2019

- SSMS 18.10

1. LTRIM 

▶ 왼쪽 공백을 제거한 문자열을 반환합니다.

LTRIM 구문 (syntaxsql)

LTRIM ( character_expression )

2. RTRIM

▶ 오른쪽 공백을 제거한 문자열을 반환합니다.

RTRIM 구문 (syntaxsql)

RTRIM ( character_expression )

3.TRIM

▶ 문자열의 왼쪽 또는 오른쪽에서 공백을 제거한 문자열을 반환합니다.

TRIM구문 (syntaxsql)

TRIM ( [ characters FROM ] string )
TRIM ( string )

예제 1)

SELECT     '     BLUESHARE     '  AS '문자열'
   , LTRIM('     BLUESHARE     ') AS 'LTRIM'   -- 왼쪽 공백제거 ('BLUESHARE     ')
   , RTRIM('     BLUESHARE     ') AS 'RTRIM'   -- 오른쪽 공백제거 ('     BLUESHARE')
   ,  TRIM('     BLUESHARE     ') AS 'TRIM'    -- 양쪽 공백제거 ('BLUESHARE')
SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo

예제 2)

-- COL_1 열에 공백이 들어가 결과가 나오지 않음 ('   왼쪽공백')
SELECT *
  FROM BS_DEMO_2
 WHERE COL_1 = '왼쪽공백'

-- COL_1 열에 왼쪽 공백 제거
SELECT *
  FROM BS_DEMO_2
 WHERE LTRIM(COL_1) = '왼쪽공백'
SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo

예제 3)

-- 단어 #의 앞과 BlueShare의 뒤에서 마침표와 공백을 제거
SELECT TRIM( '.,! ' FROM  '     #     BlueShare   .') AS '결과'
SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo

이상입니다.

'구독''좋아요'는 다음 글 작성에 큰 힘이 됩니다.

MSSQL 문자열 자르기 (SUBSTRING, LEFT, RIGHT) - 문자열 함수 (2)

MSSQL 문자열 자르기 (SUBSTRING, LEFT, RIGHT) - 문자열 함수 (2)

MSSQL 문자열 자르기 (SUBSTRING, LEFT, RIGHT) MS SQL 쿼리문에서 문자열 데이터를 원하는 값으로 자르기가 필요할 때가 있습니다. 예로 주민번호 데이터로 생년월일, 성별을 추출할 수 있겠죠. 그럼 간단

blueshare.tistory.com

SQL 중간 공백 제거 - SQL jung-gan gongbaeg jegeo