일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- db #with절 #오라클 #oracle #쿼리 #query
- oracle #
- DTO #VO
- react #event
- springboot #에러
- Django #장고 #에러해결방법 #templatetags
- git #삭제
- python #json
- react #props #state
- react #ref
- react #리액트 #JSX
- decode함수
- 인텔리제이 #intelliJ #패키지생성 #package
- SQL
- blockscope
- 인프런 #assertThat #오류
- 데이터집계
- regexp_substr함수
- PostgreSQL
- JPA #Springboot #java
- flutter #flutter개념 #특징 #장단점
- django #db #오류
- kotlin #코틀린 #SpringDataJPA단점
- Django #Static
- MariaDB #Error
- db #mysql #mariadb
- yarn #오류
- JSP #Java #JQuery
- react #mini_project #study
- javascript #자바스크립트 #공백제거함수
- Today
- Total
감자의 개발공부 일지
[Oracle] 오라클 CONCAT 함수 (문자결합, NVL, COALESCE) 본문
CONCAT 함수는 두 개의 문자열을 결합하는 함수로, 간단하고 직관적입니다. 하지만 사용에 있어 몇 가지 제한이 있습니다.
1. CONCAT 함수 기본 사용법
CONCAT 함수는 두 개의 문자열을 결합하는 함수입니다. 두 개의 문자열을 인자로 받으며, 결합된 문자열을 반환합니다.
문법
CONCAT(string1, string2)
예시
SELECT CONCAT('Hello', ' World') AS greeting
FROM dual;
실행결과
Hello World
=> CONCAT('Hello', ' World')는 'Hello'와 ' World'를 결합하여 'Hello World'라는 결과를 반환합니다.
2. CONCAT 함수의 제한 사항
CONCAT 함수는 두 개의 문자열만 결합할 수 있다는 제한이 있습니다. 만약 세 개 이상의 문자열을 결합하려면 CONCAT 함수를 여러 번 중첩해야 합니다.
예시
SELECT CONCAT(CONCAT('Hello', ' '), 'World') AS greeting
FROM dual;
실행결과
Hello World
=> 첫 번째 CONCAT가 'Hello'와 공백을 결합하고, 두 번째 CONCAT가 그 결과와 'World'를 결합하여 'Hello World'를 반환합니다.
3. 여러 문자열을 결합하는 더 효율적인 방법
CONCAT 함수는 두 개의 문자열만 처리할 수 있지만, 여러 문자열을 결합하려면 || 연산자가 더 유용합니다. || 연산자는 여러 개의 문자열을 한 번에 결합할 수 있습니다.
예시
SELECT 'Hello' || ' ' || 'World' || '!' AS greeting
FROM dual;
실행결과
Hello World!
4. 실용적인 예제: 직원의 전체 이름 결합
직원 테이블에서 이름(first_name)과 성(last_name)을 결합하여 전체 이름을 만들 수 있습니다.
예시
SELECT first_name || ' ' || last_name AS full_name
FROM employees;
실행결과
John Doe
Jane Smith
Alice Johnson
=> employees 테이블에서 first_name과 last_name을 결합하여 full_name이라는 새로운 열을 생성합니다. 예를 들어, first_name이 John이고 last_name이 Doe라면, 결과는 John Doe가 됩니다.
5. NULL 처리 주의
CONCAT 함수나 || 연산자를 사용할 때, 하나의 문자열이 NULL이면 결과는 NULL이 됩니다. 예를 들어, first_name이 NULL이라면 first_name || ' ' || last_name은 NULL을 반환합니다.
예시
SELECT first_name || ' ' || last_name AS full_name
FROM employees;
예시데이터
first_name = NULL, last_name = 'Smith'
실행결과
NULL
=> 이런 상황을 방지하려면 NVL 함수나 COALESCE 함수를 사용하여 NULL을 처리할 수 있습니다.(아래가 그 예시 입니다.)
5-1 . NVL 함수
예시
SELECT NVL(first_name, 'No First Name') || ' ' || NVL(last_name, 'No Last Name') AS full_name
FROM employees;
실행결과
No First Name Smith
=> first_name이나 last_name이 NULL일 경우, 'No First Name' 또는 'No Last Name'을 대신 사용하여 결합합니다.
5-2 . COALESCE 함수
문법
COALESCE(ex1, ex2, ..., exN)
=> ex1, ex2, ..., exN은 순서대로 확인할 표현식들입니다. 첫 번째로 NULL이 아닌 값을 반환합니다.
예시
SELECT COALESCE(first_name, 'No First Name') || ' ' || COALESCE(last_name, 'No Last Name') AS full_name
FROM employees;
예시데이터_1
first_name = NULL, last_name = 'Smith'
실행결과_1
No First Name Smith
예시데이터_2
first_name = 'John', last_name = NULL
실행결과_2
John No Last Name
COALESCE VS NVL
NVL 함수는 두 개의 인자만 처리할 수 있는 반면, COALESCE는 두 개 이상의 인자를 처리할 수 있습니다. 예를 들어, NVL을 사용하려면 두 개의 인자만 사용할 수 있지만, COALESCE는 여러 인자를 순차적으로 확인하여 첫 번째 NULL이 아닌 값을 반환합니다.
📕 오늘의 요약
오라클에서 문자열을 결합하는 데 사용할 수 있는 방법에는 CONCAT 함수와 || 연산자가 있습니다. CONCAT 함수는 두 개의 문자열만 결합할 수 있지만, || 연산자는 여러 개의 문자열을 한 번에 결합할 수 있어 더 편리합니다. 또한, NULL 값을 처리할 때는 NVL 또는 COALESCE 함수를 사용하는 것이 좋습니다.
'DB' 카테고리의 다른 글
[PostgreSQL] 원하는 갯수만큼 데이터 조회하기: LIMIT과 OFFSET 활용법 (0) | 2025.03.12 |
---|---|
[PostgreSQL] 문자열 함수(SUBSTRING, LENGTH, UPPER, REGEXP_REPLACE) (0) | 2025.03.10 |
[Oracle] 오라클 REGEXP_SUBSTR 함수 사용법 및 예제 (0) | 2024.05.30 |
[Oracle] 오라클에서 WITH절 사용방법 (0) | 2024.05.29 |
[MariaDB] DataError:(1406, "Data too long for column '~' at row 1") (1) | 2022.12.14 |