2019/12(23)
-
DB/Oracle
2019.12.03
11
[Oracle] 오라클 첫번째 NULL값의 다음 값 찾기 COALESCE 함수 사용법
COALESCE 함수는 인자값으로 들어오는 표현식에서 NULL이 아닌 첫번째 표현식을 리턴해주는 함수입니다. COALESCE 함수 사용법 SELECT COALESCE('A','B','C'), --결과값 : A COALESCE(NULL,'B','C'), --결과값 : B COALESCE(NULL,NULL,'C'), --결과값 : C COALESCE(NULL,NULL,NULL) --결과값 : NULL FROM DUAL COALESCE 작동원리는 NVL, NVL2함수와 비슷합니다. 인자값으로 들어온 값 중에서 NULL값이 아닌 첫번째 값을 반환합니다. 만약 NULL값만 들어왔다면 NULL값을 반환합니다. 파라미터의 타입은 일치하여야 합니다. SELECT COALESCE(NULL,'A',1) FROM DUAL ..
-
DB/Oracle
2019.12.02
2
[Oracle] 오라클에서 날짜를 비교하는 방법
오라클에서 날짜를 비교할 때 주의사항이 있습니다. DATE형/ 문자형끼리 비교는 문제가 없지만 DATE형과 문자형의 비교일 경우 서로 데이터 타입을 맞춰줘야 합니다. 오라클에서 주로 날짜 포맷을 맞추는 TO_CHAR 함수의 리턴 값이 문자형이므로 이런 실수가 자주 나옵니다. 날짜 비교 WITH EXAMPLE AS( SELECT TO_CHAR(SYSDATE,'YY/MM/DD') AS DAY1, --19/12/01' SYSDATE AS DAY2 --19/12/01' FROM DUAL ) SELECT '두 날짜는 서로 같습니다.' FROM EXAMPLE WHERE DAY1 = DAY2 위 쿼리를 조회해보면 데이터가 조회되지 않습니다. 데이터가 조회되지 않은 이유는 바로 서로의 데이터 타입이 다르기 때문입니다...
-
DB/Oracle
2019.12.01
5
[Oracle] 오라클 날짜를 계산하는 다양한 방법 (연산자, 함수)
날짜 계산 (연산자) SELECT SYSDATE + 100, --현재날짜 +100일 SYSDATE - 100, --현재날짜 -100일 SYSTIMESTAMP + 100, --현재날짜 +100일 SYSTIMESTAMP - 100 --현재날짜 -100일 FROM DUAL 위와같이 + , - 연산자를 활용하여 간단한 날짜 계산이 가능합니다. 날짜 계산 (함수) SELECT ADD_MONTHS(SYSDATE,6), --현재시간 + 6개월 뒤 LAST_DAY(SYSDATE), --해당월 마지막 일자 계산 NEXT_DAY(SYSDATE,'일요일'), --다음 주 일요일 계산 MONTHS_BETWEEN(SYSDATE, SYSDATE-100) --DATE1과 DATE2의 개월 수 반환 FROM DUAL ADD_MONT..
-
DB/Oracle 2019.12.03 11[Oracle] 오라클 첫번째 NULL값의 다음 값 찾기 COALESCE 함수 사용법 COALESCE 함수는 인자값으로 들어오는 표현식에서 NULL이 아닌 첫번째 표현식을 리턴해주는 함수입니다. COALESCE 함수 사용법 SELECT COALESCE('A','B','C'), --결과값 : A COALESCE(NULL,'B','C'), --결과값 : B COALESCE(NULL,NULL,'C'), --결과값 : C COALESCE(NULL,NULL,NULL) --결과값 : NULL FROM DUAL COALESCE 작동원리는 NVL, NVL2함수와 비슷합니다. 인자값으로 들어온 값 중에서 NULL값이 아닌 첫번째 값을 반환합니다. 만약 NULL값만 들어왔다면 NULL값을 반환합니다. 파라미터의 타입은 일치하여야 합니다. SELECT COALESCE(NULL,'A',1) FROM DUAL ..
-
DB/Oracle 2019.12.02 2[Oracle] 오라클에서 날짜를 비교하는 방법 오라클에서 날짜를 비교할 때 주의사항이 있습니다. DATE형/ 문자형끼리 비교는 문제가 없지만 DATE형과 문자형의 비교일 경우 서로 데이터 타입을 맞춰줘야 합니다. 오라클에서 주로 날짜 포맷을 맞추는 TO_CHAR 함수의 리턴 값이 문자형이므로 이런 실수가 자주 나옵니다. 날짜 비교 WITH EXAMPLE AS( SELECT TO_CHAR(SYSDATE,'YY/MM/DD') AS DAY1, --19/12/01' SYSDATE AS DAY2 --19/12/01' FROM DUAL ) SELECT '두 날짜는 서로 같습니다.' FROM EXAMPLE WHERE DAY1 = DAY2 위 쿼리를 조회해보면 데이터가 조회되지 않습니다. 데이터가 조회되지 않은 이유는 바로 서로의 데이터 타입이 다르기 때문입니다...
-
DB/Oracle 2019.12.01 5[Oracle] 오라클 날짜를 계산하는 다양한 방법 (연산자, 함수) 날짜 계산 (연산자) SELECT SYSDATE + 100, --현재날짜 +100일 SYSDATE - 100, --현재날짜 -100일 SYSTIMESTAMP + 100, --현재날짜 +100일 SYSTIMESTAMP - 100 --현재날짜 -100일 FROM DUAL 위와같이 + , - 연산자를 활용하여 간단한 날짜 계산이 가능합니다. 날짜 계산 (함수) SELECT ADD_MONTHS(SYSDATE,6), --현재시간 + 6개월 뒤 LAST_DAY(SYSDATE), --해당월 마지막 일자 계산 NEXT_DAY(SYSDATE,'일요일'), --다음 주 일요일 계산 MONTHS_BETWEEN(SYSDATE, SYSDATE-100) --DATE1과 DATE2의 개월 수 반환 FROM DUAL ADD_MONT..