728x90
- Null 값과의 산술연산의 결과는 항상 Null이다.
- NVL
- NVL('컬럼', 치환할 값);
- 컬럼의 값이 NULL인지 체크하여 NULL이면 치환한다.
- NVL('컬럼', 치환할 값);
- NVL2
- NVL2('컬럼', 값1, 값2);
- 컬럼 값이 NULL이 아니면 값1 을, NULL이면 값2 로 치환한다.
- NVL2('컬럼', 값1, 값2);
- 오라클 데이터 타입
- CHAR(n) : 고정길이의 문자, 최대값은 2000byte
- VARCHAR2(n) : 가변길이의 문자, 최대값은 4000byte
- NUMBER(p,s) : 숫자값, p는 전체 자리수 1 ~ 38, s는 소수점이하 자리수 -84 ~ 127
- DATE : 총 7byte, BC4712년 1월 1일 ~ AD9999년 12월 31일 사이 날짜 저장
- LONG : 가변길이 Text, 최대 2G
- CLOB : 가변길이 Text, 최대 4G
- BLOB : 가변길이 Binary, 최대 4G
- RAW(n) : 원시 Binary, 최대 2000byte
- LONG RAW(n) : 원시 Binary, 최대 2G
- BFILE : 외부파일에 저장된 데이터, 최대 4G
- 묵시적 형변환
- SELECT 1 + '1' FROM dual; : 숫자로 된 '문자'는 산술 연산시 자동적으로 숫자로 변환해준다.
- SELECT 1 + TO_NUMBER('1') FROM dual; : 실제로는 형변환 함수가 호출된다.
- 형변환 함수
- 숫자(number) → 문자(char) : TO_CHAR
- 문자(char) → 숫자(number) : TO_NUMBER
- 문자(char)→ 날짜(date) : TO_DATE
- 날짜(date) → 문자(char) : TO_CHAR
- TO_CHAR() 함수
- 날짜(date) → 문자(char)
- TO_CHAR(날짜, 원하는 모양);
- SELECT TO_CHAR(SYSDATE, 'YYYY') "연도 4자리" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'RRRR') "연도 4자리" FROM dual;
- RR은 연도가 4자리인 경우엔 YY와 차이가 없으나, 2자리인 경우 50년을 기준으로 작으면 '20', 크거나 같으면 '19'가 붙는다.
- SELECT TO_CHAR(SYSDATE, 'YY') "연도 2자리" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'YEAR') "연도 영문" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'MM') "월 2자리" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'MON') "월 3자리" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'MONTH') "월 전체" FROM dual;
- SELECT TO_CHAR(SYSDATE, MONTH, 'NLS_DATE_LANGUAGE=ENGLISH') "월 영문 3자리" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'MONTH', 'NLS_DATE_LANGUAGE=ENGLISH') "월영문전체(대문자)" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'month', 'NLS_DATE_LANGUAGE=ENGLISH') "월영문전체(소문자)" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'Month', 'NLS_DATE_LANGUAGE=ENGLISH') "월영문전체(첫글자만 대문자) FROM dual;
- SELECT TO_CHAR(SYSDATE, 'DD') "일 숫자 2자리" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'DDTH') "몇번째 날" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'DAY') "요일" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'Dy') "요일 앞자리" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'HH24') "시 24hr" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'HH') "시 12hr" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'MI') "분" FROM dual;
- SELECT TO_CHAR(SYSDATE, 'SS') "초" FROM dual;
- TO_CHAR(날짜, 원하는 모양);
- 날짜(date) → 문자(char)
- TO_CHAR() 함수
- 숫자(number) → 문자(char)
- TO_CHAR(숫자, 원하는 모양);
- SELECT TO_CHAR(1234, '99999') "9하나당 1자리" FROM dual;
- SELECT TO_CHAR(1234, '099999') "빈자리를 0으로" FROM dual;
- SELECT TO_CHAR(1234, '$9999') "빈자리를 $로" FROM dual;
- SELECT TO_CHAR(1234, '9999.99') "소수점 이하 2자리까지 표현" FROM dual;
- SELECT TO_CHAR(1234, '99,999') "천단위 구분 기호" FROM dual;
- TO_CHAR(숫자, 원하는 모양);
- 숫자(number) → 문자(char)
- TO_NUMBER() 함수
- 문자(char) → 숫자(number)
- TO_NUMBER(문자);
- SELECT TO_NUMBER('123.45') FROM dual;
- 숫자인 문자만 변환 가능하다.
- SELECT TO_NUMBER('123.45') FROM dual;
- TO_NUMBER(문자);
- 문자(char) → 숫자(number)
- TO_DATE() 함수
- 문자(char) → 날짜(date)
- TO_DATE(문자, 날짜 포멧);
- SELECT TO_DATE('2021-01-01', 'YYYY-MM-DD') FROM dual;
- TO_DATE(문자, 날짜 포멧);
- 문자(char) → 날짜(date)
728x90