
ISNULL / NULLIF / COALESCEISNULL(param1, param2)SQL Server에서 사용되는 함수
NVL(param1, param2)Oralce에서 사용되는 함수
NULLIF(param1, param2)COALESCE(param1, param2, param3...)예)
Table_T
| col1 | col2 | col3 |
|---|---|---|
| 3 | ||
| 2 | 4 | |
| 1 | 3 | 5 |
select sum(coalesce(c1, c2, c3)) from Table_T;
>> 6
(col1의 null이 아닌 값 중 처음:1 + col2의 null이 아닌 값 중 처음:2 + col3의 null이 아닌 값 중 처음:3)
NULL이 포함된 연산NULL이 포함되면 결과는 NULL이다NULL 여부의 판단은 IS NULL 또는 IS NOT NULLAVG(param)param에 NULL값이 있다면 제외하고 연산한다.
COUNT(*)얘 말고는 NULL값을 제외하고 연산한다.
HAVINGGROUP BY를 사용하지 않는데 HAVING 사용?
가능하다
그렇다면 WHERE와 무슨 차이?
WHERE:
쿼리 결과셋을 내기 전, FROM으로 가져온 데이터를 필터링한다. 이후 SELECT에 의해 결과셋이 반환.
개별 행에 대해 / 최종 결과셋 이전에 / 결과셋을 위한 필터링
HAVING:
FROM - WHERE - SELECT 기본 구조에 의해 도출된 결과셋에서 데이터를 조건에 따라 필터링한다.
전체 행에 대해 / 결과셋 이후 / 결과셋에서 최종 필터링
TOP(N) WITH TIES col GROUP BY결과셋의 최상단부터 N개 출력 / col에 동일한 값이 있다면 같이 출력한다 / 정렬 방식
FROM절에 나열된 테이블들을 임의로 = 연산자에 의해서만 수행되며, 그 이외의 비교 연산자를 사용하는 경우에는 모두 Non EQUI JOIN이다.