null
* 정의
0이나 공백('')이 아닌 부재 또는 모르는 값
* 산술연산
null +1
null -3
null * null
=> null
* 비교연산
null = null
null = 2
~> 알 수 없음 (unknown)
where 조건절(null 비교연산 포함되어 unknown)
=> false
=> null을 비교하려면 is null 또는 is not null 사용해야함
* 정렬
oracle : 가장 큰 값으로 인식
sql server : 가장 작은 값으로 인식
https://uujjjjjnn.tistory.com/76
[sqld] 컬럼에 null이 있는데 order by desc 정렬한 경우 (oracle vs sql server)
학원다니면서 실습 할 때는 잘 몰랐는데, null 이 녀석 보통 헷갈리는 녀석이 아님 col ----- 3 1 null 1 인 경우에 order by desc 내림차순 정렬하는 경우에 차이점을 알아보자 oracle sql server null 3 3 2 2 1 1 nu
uujjjjjnn.tistory.com
+ oracle의 경우 order by desc했는데 null값을 맨 뒤로 출력하고 싶다면?
=> order by desc nulls last
+ oracle의 경우 order by asc(생략가능)했는데 null값을 맨 앞으로 출력하고 싶다면?
=> [order by asc] nulls first
* 함수
nvl(col1, A) : col1이 null인 경우 A 출력, null이 아닌 경우 col1 출력
isnull(col1,A) : col1이 null인 경우 A 출력, null이 아닌 경우 col1 출력 (nvl과 동일)
nvl2(col1, A, B) : col1이 null이 아니면 A, null이면 B 출력
nullif(col1, A) : col1과 A가 같으면 null, 같지 않으면 col1 출력
coalesce(col1, col2, A) : col1, col2가 null이면 A 출력 (null이 아닌 첫 번째 값 출력)
* 집계함수
count(*) : null 포함해서 갯수 출력
avg(), sum() : null 제외해서 집계
A | B | C |
null | null | 1 |
3 | 2 | 2 |
null | 2 | 3 |
count(A) = 1 / sum(A) = 3
count(B) = 2 / sum(B) = 4
count(C) = 3 / sum(C) = 6
=> *이 아닌 경우에 null 제외해서 count 집계
sum(A) + sum(B) + sum(C) = 13
sum(A+B+C) = 7
'기타' 카테고리의 다른 글
[sqld] 공백문자('')를 insert하는 경우 oracle vs sql server (0) | 2024.02.24 |
---|---|
[sqld] 순위 관련 함수 (rank(), dense_rank(), row_number()) (0) | 2024.02.23 |
[sqld] 날짜형 함수 시간 더하기 (0) | 2024.02.19 |
[sqld] 컬럼에 null이 있는데 order by desc 정렬한 경우 (oracle vs sql server) (0) | 2024.02.16 |
2024년 도전 자격증 (0) | 2024.01.21 |