1. 숫자함수
CEIL 소수점 무조건 올리기 (결과값은 정수)
ROUND 반올림
FLOOR 소수점 무조건 내리기 (결과값은 정수)
MOD 나머지 구하기
TRUNC 자릿수만큼 무조건 자르기
사용예제)
CEIL(1.1) = 2
ROUND(1234.567, 2) = 1234.57
ROUND(숫자, 자릿수)
▶숫자를 소수점 자릿수 만큼 반올림
FLOOR(1.9) = 1
MOD(10, 3) = 1
MOD(숫자, 나눌숫자)
▶숫자를 나눌숫자로 나눠서 얻는 나머지
TRUNC(1234.567, 1) = 1234.5
TRUNC(숫자, 자릿수)
▶숫자를 소수점 자릿수 이하로 다 짜르기
2. 문자열함수
SELECT 'ABC' "DEFAULT",
upper('abc') s1,
lower('ABC') s2,
INITCAP('abc') s3,
length('abc') s4
FROM DUAL;
UPPER(문자열): 문자열 대문자로
LOWER(문자열): 문자열 소문자로
INITCAP(문자열): 문자열의 첫번째 글자만 대문자로
LENGTH(문자열): 문자열의 길이
SELECT SUBSTR('ABC', 1, 2)
FROM DUAL:
▶ABC의 첫번째부터 2 개의 문자열 출력
▶결과값: AB
주의!! 문자열의 위치 카운트는 1부터 시작이다!
SUBSTR(문자열, 몇번째부터, 몇개): 문자열을 몇번째부터 몇개 추출
SELECT INSTR('ABC', 'B')
FROM DUAL;
▶ABC의 B가 몇번째인지 출력
▶결과값: 2
INSTR(문자열, 위치를 찾고 싶은 문자): 문자열에서 위치를 찾고 싶은 문자가 몇번째에 있는지
SELECT INSTR('ABCB', 'B', 3, 1 )
FROM DUAL;
▶결과값: 4
INSTR(문자열, 위치를 찾고 싶은 문자, 몇번째부터, 몇번째 나오는): 문자열에서 위치를 찾고싶은 문자를 몇번째부터 몇번째 나오는지
선생님의 표현에 의하면 아래와 같다.
INSRT(어디에서, 뭘찾아주세요, 어디서부터, 몇번째)
INSTR(문자열, 위치를 찾고싶은 문자, -1)
▶뒤에서부터 위치 찾기
SELECT RTRIM('ABC ') || '#'
FROM DUAL;
SELECT '#' || LTRIM(' ABC')
FROM DUAL;
SELECT '#' || TRIM(' ABC ')
FROM DUAL;
▶결과값: ABC# // #ABC // #ABC
▶문자열의 좌, 우 공백제거
RTRIM(문자열): 우측 공백제거
LTRIM(문자열): 좌측 공백제거
TRIM(문자열): 양측 공백제거
SELECT LPAD('ABC', 5, '@')
FROM DUAL;
SELECT RPAD('ABC', 5, '@')
FROM DUAL;
▶결과값: @@ABC // ABC@@
▶ 문자열의 좌/우측에 총합자리수가 될때까지 추가할문자를 추가
LPAD(문자열, 자릿수, 추가할 문자): 문자열에서 문자열 포함 총 자릿수가 될 때까지 문자열 좌측에 추가할 문자를 넣는다
RPAD는 우측
4. 날짜함수
SELECT SYSDATE 오늘, NEXT_DAY(SYSDATE, 1) 이번일요일, LAST_DAY(SYSDATE) 이달마지막
FROM DUAL;
NEXT_DAY(SYSDATE, 1)
1: 일요일
2: 월요일
3: 화요일
4: 수요일
5: 목요일
6: 금요일
7: 토요일
숫자 대신에,
NEXT_DAY(SYSDATE, ‘일요일’)
이렇게 써도 된다.
NEXT_DAY(날짜, 1~7의 숫자 혹은 '0요일'): 날짜 기준으로 다가 오는 요일이 며칠인지
LAST_DAY(날짜): 날짜 기준으로 해당 날짜에 월의 마지막 날이 며칠인지
SELECT ADD_MONTHS(SYSDATE, 1)
FROM DUAL;
ADD_MONTHS(날짜, 몇 개월): 날짜기준으로 몇개월 뒤가 며칠인지
SELECT MONTHS_BETWEEN('2020-03-31', SYSDATE)
FROM DUAL;
MONTHS_BETWEEN(날짜1, 날짜2): 날짜1에서 날짜2가 몇 개월 남았는지 (날짜1-날짜2 가 결과값이다)
5. Casting (문자를 날짜로)
to_date(문자열)
▶문자열을 날짜형식으로 바꿔준다
사용예제)
2020-01-01부터 100일 뒤의 날을 구하기
SELECT TO_DATE('2020-01-01')+100
'배운 내용 정리 > ORACLE' 카테고리의 다른 글
[학습정리] 2020.02.05~07 - order by 숫자, translate, rownum, ALL/ANY (0) | 2020.02.12 |
---|---|
[학습정리] 2020.02.04 - DB export/import, to_char, join(3개 이상 table), order by (0) | 2020.02.04 |
[학습정리] 2020.01.31 - DECODE, CASE, 글자검색, UNION (0) | 2020.02.02 |
[학습정리] 2020.01.30 - NVL, order by 다중조건, distinct, 별명, 문자열 병합, not, data 대소문자 구분 (0) | 2020.01.31 |
[학습정리] 2020.01.29 - 현재 sequence 가져오기 (0) | 2020.01.30 |