Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- sns 샌드박스 종료
- Primary key(기본 키)
- EC2
- node.js
- 스트레스툴
- sms 휴대폰 인증
- 자바
- sql 데이터 추가
- PostgreSQL CAST
- 이것이 자바다
- sql 데이터 삽입
- aws sdk v3
- HTML
- node.js ec2 ip접속
- Java
- SMS sandbox
- node.js ec2 배포
- html tag
- Apache ab
- npm 글로벌 설치 삭제 했는데 실행됨
- Apache Benchmark
- npm 전역 설치 삭제
- HTML 태그
- AWS SDK for JavaScript v3
- sms 샌드박스
- filezilla
- COALESCE함수
- Foreign Key (외래 키)
- node.js ec2
- ab 벤치마크
Archives
- Today
- Total
망각에 재주 있는 나를 위해 기록하는 곳.
[SQL] COALESCE, NULLIF (NVL, NVL2) 본문
COALESCE
COALESCE 함수는 여러 개의 인자를 받아서, 그 중에서 NULL이 아닌 첫 번째 값을 반환하는 함수이다.
인자로 받은 값들을 왼쪽에서 오른쪽으로 순차적으로 검사하며, NULL이 아닌 첫 번째 값을 찾아서 반환한다.
ANSI 표준 함수라서 대부분의 SQL에서 사용 가능하다.
예시를 보면 이해가 간다.
SELECT COALESCE(NULL, 5, 10, 15);
=> 결과: 5
SELECT COALESCE(NULL, NULL, 10, 15);
=> 결과: 10
SELECT COALESCE(NULL, NULL, NULL, NULL);
=> 결과: NULL
test이름의 테이블이 있고
a | b | c | |
1 | 1 | 2 | 3 |
2 | 4 | 5 | NULL |
3 | NULL | NULL | NULL |
4 | 6 | NULL | NULL |
5 | NULL | 7 | NULL |
6 | NULL | 8 | 9 |
7 | NULL | NULL | 10 |
COALESCE 함수로 쿼리를 하면
SELECT *, COALESCE(a,b,c) AS result
FROM test;
아래와 같은 결과를 얻을 수 있다.
a | b | c | result | |
1 | 1 | 2 | 3 | 1 |
2 | 4 | 5 | NULL | 4 |
3 | NULL | NULL | NULL | NULL |
4 | 6 | NULL | NULL | 6 |
5 | NULL | 7 | NULL | 7 |
6 | NULL | 8 | 9 | 8 |
7 | NULL | NULL | 10 | 10 |
NULLIF
NULLIF(A, B)
=> A와 B가 같으면 NULL 반환, 다르면 A값 반환.
NVL, NVL2
NVL과 NVL2는 Oracle에서만 사용되는 함수인데, 이것도 NULL 값 처리에 사용된다.
( *COALESCE 함수는 표준 함수)
NVL
NVL(대상값, 대체값)
=> 대상값이 NULL 인지 아닌지 검사 후
NULL 아니면 대상값 출력.
NULL이면 대체값 출력.
NVL2
NVL2(조건, NULL아닐때, NULL일때)
=> 조건이 NULL인지 아닌지 검사 후,
NULL아닐때, NULL일때 값을 조건에 맞게 출력.
'DB' 카테고리의 다른 글
postgres 스키마 디폴트 변경 (0) | 2024.07.09 |
---|---|
[PostgreSQL] CAST (1) | 2024.03.28 |
[SQL] 데이터베이스 객체 삭제 (DROP) (0) | 2024.03.28 |
[SQL] 데이터베이스 구조 변경 (ALTER) (1) | 2024.03.28 |
[SQL] 데이터 삭제 (DELETE) (0) | 2024.03.28 |