반응형
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
- Mac
- Excel
- Google Spreadsheet
- array
- PostgreSQL
- Redshift
- string
- dataframe
- PySpark
- Github
- Kotlin
- Google Excel
- django
- PANDAS
- Java
- SQL
- 파이썬
- matplotlib
- numpy
- hive
- google apps script
- Apache
- math
- Tkinter
- c#
- gas
- Python
- list
- GIT
Archives
- Today
- Total
달나라 노트
Redshift : nvl, nvl2, coalesce (여러 값 중 null이 아닌 값 추출하기) 본문
SQL/Redshift
Redshift : nvl, nvl2, coalesce (여러 값 중 null이 아닌 값 추출하기)
CosmosProject 2020. 12. 17. 02:15728x90
반응형
nvl(value1, value2)
coalesce(value1, value2, value3, ...)
nvl과 coalesce는 모두 첫 번째 value가 null일 때 그 다음 value를 반환합니다.
nvl의 경우 value1이 null이면 value2를 반환합니다.
coalesce의 경우
1. value1이 null이면 value2를 반환합니다.
2. value2도 null이면(=value1과 value2 모두 null이면) value 3를 반환합니다.
3. value3도 null이면(=value1, value2, value3 모두 null이면) value 4를 반환합니다.
...
nvl과 coalesce는 기능이 비슷하지만 nvl은 2개의 인자만 넣을 수 있는 반면 coalesce는 여러 개의 인자를 넣을 수 있다는 차이가 있습니다.
select nvl(null, 10);
-> 결과 : 10
select coalesce(null, 'abc');
-> 결과 : abc
select coalesce(null, null, 123);
-> 결과 : 123
nvl2(value1, value2, value3)
nvl2라는 function도 있습니다.
nvl2는 위처럼 3개의 parameter를 받으며
value1이 null이 아니라면 value2를 return하고,
value1이 null이라면 value3를 return합니다.
select nvl2(null, 'a', 'b')
, nvl2('apple', 'a', 'b')
;
-- Result
b
a
728x90
반응형
'SQL > Redshift' 카테고리의 다른 글
Redshift : TRIM, LTRIM, RTRIM (문자열의 공백 제거) (0) | 2020.12.17 |
---|---|
Redshift : concat, ||, + (문자열 합치기) (0) | 2020.12.17 |
Redshift : nullif (특정 값일 때 null값을 반환) (0) | 2020.12.17 |
Redshift : RANK, DENSE_RANK, ROW_NUMBER (순위, 컬럼번호 부여하기) (0) | 2020.12.17 |
Redshift : replace (텍스트 바꾸기) (0) | 2020.12.17 |
Comments