Data Engineering/SQL

문자열 합치기 - CONCAT과 ||

Hyunie 2021. 8. 8. 23:55
728x90
반응형

SQL에서 문자열을 합치는 방법은 CONCAT 함수를 사용하는 것과 ||(Double vertical bars)를 사용하는 방법 두 가지가 있다.

여러 개의 문자열을 합치고자 할 때, 각 DB별로 방법이 다를 수 있기 때문에 주의해야한다.

 

ORACLE, MYSQL 제외 DB

SELECT CONCAT(first_name, ' ' ,last_name) FROM EMPOYEES
SELECT first_name || ' ' || last_name FROM EMPOYEES

 두 코드의 실행 결과가 동일하다.

 

ORACLE

 오라클의 CONCAT함수는 매개변수를 두 개만 받는다. 따라서 두 개 이상의 값/행을 연결하기 위해서는 중첩 concat을 사용하거나 ||를 사용해야한다.

 어느 행에 결측치가 존재할 경우, 결측치를 빈 문자열로 인식하여 붙인 결과값을 출력한다. 예를 들어 'Emma',Null,'Stone'을 붙일 경우 'EmmaStone'이 반환된다.

 

- Vertical bar를 사용할 경우 다른 DB와 동일
SELECT first_name || ' ' || last_name FROM EMPOYEES
SELECT CONCAT(CONCAT(first_name, ' '), last_name) FROM EMPOYEES

 

MYSQL

 MYSQL에서 ||는 boolean, 즉 참거짓을 판별하는 부호이다. 따라서 CONCAT을 사용해야한다.

 어느 행에 결측치가 존재할 경우, 결과로 Null을 출력한다. 예를 들어 'Emma',Null,'Stone'을 붙일 경우 Null이 반환된다.

SELECT CONCAT(first_name, ' ' ,last_name) FROM EMPOYEES

 

 

 

CONCAT함수보다는 vertical bar가 가독성이 좋기 때문에 사용하는 DB가 MYSQL이 아니라면 실무에서는 ||를 많이 사용한다고 한다.

728x90
반응형