'프로그래밍/DB_ORACLE'에 해당되는 글 3건

  1. 2014.02.17 오라클 nvl
  2. 2014.02.07 Oracle DISTINCT, GROUP BY (1)
  3. 2014.02.06 Oracle DECODE 함수
2014.02.17 15:05

Null 값일 때다른 값으로 바꿔주는 함수로  oracle에서는 nvl()함수를 사용하고,
MS-SQL
에서는
  isnull()함수를 사용하면 됩니다.


예)


NVL(SUM(mileage),0) as mileage

저작자 표시
신고

'프로그래밍 > DB_ORACLE' 카테고리의 다른 글

오라클 nvl  (0) 2014.02.17
Oracle DISTINCT, GROUP BY  (1) 2014.02.07
Oracle DECODE 함수  (0) 2014.02.06
Posted by hoonihoon85 hoonihoon
2014.02.07 10:32

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 보다 느릴 수 있다.


저작자 표시
신고

'프로그래밍 > DB_ORACLE' 카테고리의 다른 글

오라클 nvl  (0) 2014.02.17
Oracle DISTINCT, GROUP BY  (1) 2014.02.07
Oracle DECODE 함수  (0) 2014.02.06
Posted by hoonihoon85 hoonihoon
2014.02.06 17:36

문제

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 


저작자 표시
신고

'프로그래밍 > DB_ORACLE' 카테고리의 다른 글

오라클 nvl  (0) 2014.02.17
Oracle DISTINCT, GROUP BY  (1) 2014.02.07
Oracle DECODE 함수  (0) 2014.02.06
Posted by hoonihoon85 hoonihoon

티스토리 툴바