반응형
문자열을 합치는 예로는 주소가 있다.
주소는 데이터가 나뉘어서 저장되기도 하는데 출력할 때는 문자열을 합쳐야하고 이는 CONCAT으로 해결할 수 있다.
CONCAT을 사용하는 방법은 Oracle과 MySQL이 동일하나, 약간의 차이점이 있다.
Oracle에서 문자열 합치기
CONCAT으로 문자열 합치기
SELECT CONCAT(CONCAT('문자열',' '), '합치기') FROM DUAL;
-- 문자열 합치기
CONCAT을 사용해서 문자열을 더할 수 있지만, 매개변수가 2개로 제한되어있다.
그래서 추가적인 연산을 하려면 CONCAT 함수를 연달아 사용해야한다.
||으로 문자열 합치기 ( Oracle만 가능 )
SELECT "문자열" || " " || "합치기" FROM DUAL;
-- 문자열 합치기
위의 || 연산을 MySQL에서 실행하게되면 OR 연산이 되버려, 오라클에서만 사용이 가능하다.
MySQL에서 문자열 합치기
CONCAT으로 문자열 합치기
SELECT CONCAT('문자열', ' ', '합치기') FROM DUAL;
-- 문자열 합치기
MySQL에서는 오라클과 달리 매개변수 개수에 대한 제한이 없기 때문에, 연달아 작성해도 무방하다.
CONCAT + SUBSTRING 으로 전화번호, xxx-xxxx-xxxx 포맷 출력하기
SELECT CONCAT(SUBSTRING(TLNO,1, 3), '-', SUBSTRING(TLNO, 4, 4), '-', SUBSTRING(TLNO, 8,4))
FROM CUSTOMERS;
-- EX> 010-1234-5678
CUSTOMERS 테이블에 TLNO(전화번호) 필드 데이터 값이 01012345678 과 같이 저장되어 있을 때,
이를 xxx-xxxx-xxxx 으로 출력하기 위한 방법이다.
정리
오라클과 MySQL 둘 다 CONCAT 함수를 지원하지만 매개변수 개수에 대한 제약이 있고 없고의 차이점이 있다.
또한, 오라클에서는 || 를 통해 문자열을 더할 수 있지만 MySQL에서는 OR 연산으로 쓰인다.
반응형
'SQL' 카테고리의 다른 글
| [SQL] CASE-WHEN, 조건에 따라 출력하기 (0) | 2023.06.12 |
|---|---|
| [Oracle/MySQL] ROWNUM과 LIMIT, 행 수 제한하기 (3) | 2023.06.09 |
| [MySQL] REGEXP, 정규표현식을 이용하여 검색하기 (0) | 2023.06.06 |
| [Oracle/MySQL] 날짜 연산, 이전 달 출력하기 (0) | 2023.05.31 |
| [Oracle/MySQL] NVL과 IFNULL, COALESCE로 널 값 처리하기 (0) | 2023.05.24 |