DB 공부
실제 사용하는 DB쿼리 응용
호 두
2022. 1. 15. 15:38
반응형
개인보관용
* DATE형식의 컬럼 비교시에는 날짜 형식을 별도로 지정하지 않고 정규식으로 숫자만 남긴 후 변환하여 비교
NO_DT <= DECODE(:no_dt, NULL, SYSDATE, TO_DATE(REGEXP_REPLACE(:no_dt, '[^0-9]'), 'YYYYMMDD'))
* SQL조건이 optional 한 경우에는 decode문을 활용하여 처리
where DECODE(:num, null, '1', NUM) = DECODE(:num, null, '1', :NUM)
* DECODE 반복 최소화
#BEFORE
SELECT SUM( DECODE( market, 'D',
DECODE(type, '1', DECODE(unit 'A', 0.2*col,
'B', 0.5*col, ......
#AFTER
SELECT SUM( DECODE( market || type || unit, 'D1A', 0.2, 'D1B', 0.5 ...) *col)
반응형