Null 값일 때, 다른 값으로 바꿔주는 함수로 oracle에서는 nvl()함수를 사용하고,
MS-SQL에서는 isnull()함수를 사용하면 됩니다.
예)
NVL(SUM(mileage),0) as mileage
'2019년 이전 정리 > DB_ORACLE' 카테고리의 다른 글
Oracle DISTINCT, GROUP BY (1) | 2014.02.07 |
---|---|
Oracle DECODE 함수 (0) | 2014.02.06 |
Null 값일 때, 다른 값으로 바꿔주는 함수로 oracle에서는 nvl()함수를 사용하고,
MS-SQL에서는 isnull()함수를 사용하면 됩니다.
예)
NVL(SUM(mileage),0) as mileage
Oracle DISTINCT, GROUP BY (1) | 2014.02.07 |
---|---|
Oracle DECODE 함수 (0) | 2014.02.06 |
DISTINCT 는 중복제거에 사용
SELECT COUNT(DISTICNT team) as cnt
FROM tbName;
그러나 DISTINCT 는 집합함수에 사용불가
SELECT id, COUNT(DISTICNT team) as cnt
FROM tbName;
위에 DISTINCT 문을 GROUP BY 로 고치면
SELECT id, COUNT(team)
FROM tbName
GROUP BY id;
Group By를 사용해서 해야한다. Group By는 정렬이 들어가므로 성능이 DISTINCT 보다 느릴 수 있다.
오라클 nvl (0) | 2014.02.17 |
---|---|
Oracle DECODE 함수 (0) | 2014.02.06 |
문제
SELECT GROUP_ID, GROUP_NM, DECODE(GROUP_ID, 'TEST', 'A', GROUP_ID)
FROM AUTO_SET_GROUP
해결
DECODE 는 오라클에서 지원하는 함수로 SELECT 문자 내에서 비교 연산을 수행 ( IF 문 과 비슷)
-> GROUP_ID 가 TEST과 같다면 A를 출력하고 아니면 GROUP_ID 를 출력
1. 합계를 내는 곳에 응용 가능
SUM(DECODE(GROUP, 'A' , 1, 0)
-> GROUP 이 A면 1, 아니면 0
2. 2중 DECODE 문에 응용 가능
DECODE(GROUP, 'A', DECODE(NAME, 'TEAM_A', 1), 0)
->GROUP이 A이면서 NAME이 TEAM_A일 경우 1, 아니면 0
오라클 nvl (0) | 2014.02.17 |
---|---|
Oracle DISTINCT, GROUP BY (1) | 2014.02.07 |