(SQL) 칼럼 연결하기, 공백 제거하기
(CONCAT, TRIM)

(SQL) 칼럼 연결하기 , 공백제거하기.

(SQL) 칼럼 연결하기 (CONCAT ), 공백 제거하기 ( TRIM, RTRIM, LTRIM )



  • 회사명과 회사 위치를 함께 출력하고 싶지만, 두 정보가 서로 다른 테이블 열에 저장되어 있다.

  • 시,도, 우편번호는 서로 다른 열에 저장되어 있지만, 배송지 주소를 인쇄하는 응용 프로그램에서는 하나의 필드로 가져와야 한다.

위 두 상황을 해결하기 위해서는 칼럼을 서로 연결해줘야 한다.
칼럼을 연결할 때 사용하는 함수인 Concat, || 에 대해 알아보자.

추가로, 칼럼의 공백을 제거해주는 함수인 TRIM에 대해서도 살펴보자.


✋🏾 <손에 잡히는 10분 SQL _ 인사이트> 교재를 참고해 작성한 포스팅입니다.

✋🏾 샘플데이터 다운로드 링크


1. 칼럼 연결하기 : CONCAT, ||



칼럼을 연결하는 문법은 사용하는 DBMS에 따라 다르다.

MYSQL과 MariaDB의 경우, CONCAT 함수를 이용하여 칼럼을 연결해준다.

SELECT CONCAT(vend_name,'(' , vend_country,')') AS vend_total
FROM Vendors



CONTCAT함수는 괄호안에, 연결하고자 하는 칼럼, 문자를 넣어주면 된다.

위 코드의 경우 , vend_name 칼럼과 vend_country 칼럼을 연결해준다.
추가로, 소괄호를 함수안에 삽입해 vend_country를 괄호로 감싼 것을 알 수 있다.


위 표와 같이 vend_name, vend_country과 연결되어 출력된다.

PostgreSql은 칼럼을 연결하기 위해 || 문법을 사용한다.

SELECT vend_name || '(' || vend_country || ')' AS vend_total
FROM Vendors



연결하고자 하는 대상 사이에 || 를 넣어주면 된다.
( CONCAT 함수보다 더 간단하고 직관적인 느낌이다)


2. 공백제거하기 : TRIM, RTRIM, LTRIM



칼럼을 서로 연결하다 보면 공백문자가 사이에 채워져 있는 경우가 많다.

연결하자하는 레코드 자체에 공백이 포함되어 있어 나타나는 현상이다.

대부분의 DBMS는 열 길이에 맞춰 텍스트를 저장하기 때문에
공백도 하나의 문자로 취급한다.

그러나 문제는 공백은 눈에 잘 띄지 않는다는 점이다.

따라서,공백을 고려하지 않고 데이터를 처리한다면
향후에 데이터 검색이나 계산시 문제가 발생할 수 있다.

다행히도 많은 DBMS가 공백제거 함수를 제공한다.


TRIM ( ) , RTRIM( ) , LTRIM ( ) 함수를 이용하면 레코드의
공백을 제거 할 수 있다.

함수명에서 눈치챈 사람도 있겠지만, 세 함수의 차이는 아래와 같다.

  • TRIM ( ) : 양쪽에 있는 공백 제거

  • LTRIM ( ) : 왼쪽에 있는 공백 제거

  • RTRIM( ) : 오른쪽에 있는 공백 제거

다음 코드는 공백을 제거하여 칼럼을 연결하는 코드이다.

SELECT CONCAT(RTRIM(vend_name),'(',RTRIM(vend_country),')')
FROM Vendors
ORDER BY vend_name; -- MYSQL
     
     
SELECT RTRIM(vend_name) || '(' || RTRIM(vend_country) || ')'
  FROM Vendors
  ORDER BY vend_name; -- Postgresql 

© 2024. All rights reserved.