ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 문자열 합치기 - CONCAT과 ||
    Data Engineering/SQL 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
    반응형

    'Data Engineering > SQL' 카테고리의 다른 글

    프로그래머스 SQL TEST - 입양 시각 구하기(2)  (0) 2022.04.12
    몫과 나머지 구하기  (0) 2021.08.09

    댓글