아무튼 개발
article thumbnail
반응형

 

오늘은 함수를 살펴보겠다!

숫자, 문자 등 타입마다 다양한 함수들의 대표 사례를 확인할 것이다.

 

 

숫자 함수

 

괄호 안 : (숫자,자리수)

 

- ROUND (반올림)

SELECT ROUND(34.275,1) FROM DUAL; -> 34.3

SELECT ROUND(34.275,-1) FROM DUAL; -> 30

 

- TRUNC (절삭)

SELECT TRUNC(34.275,1) FROM DUAL; -> 34.2

 

- CEIL/FLOOR(올림/내림) : 정수로만 반환한다.
SELECT CEIL(34.275) FROM DUAL; -> 35

 

--ABS(절대값)
SELECT ABS(-123) FROM DUAL; ->123

 

--SIGN(양수 1,음수 -1,0은 0)
SELECT SIGN(100),SIGN(-100),SIGN(0) FROM DUAL;

 

 

문자 함수

 

- UPPER(소문자->대문자)

- LOWER(대문자->소문자)

SELECT * FROM DIVISION
WHERE NAME=UPPER('notebook'); 혹은 WHERE LOWER(NAME)='notebook';

순서는 전자가 더 빠르다. 후자는 컬럼 모두 변환하고 확인하기 때문이다.

 

- SUBSTR

SELECT SUBSTR('ABCDEFG',2,3) FROM DUAL; -> BCD

2번째 문자부터 3글자 출력

SELECT SUBSTR('ABCDEFG',-4) FROM DUAL; -> DEFG

뒤에서부터 4글자 출력

 

- INSTR

SELECT INSTR('ABCDEFG','D') FROM DUAL; -> 4

'D'가 위치하는 순서 출력

SELECT INSTR('AAAAAAA','A') FROM DUAL; -> 1. (뒤에가 모두  A여도 첫번째로 만나는 값의 순서를 읽음)

SELECT INSTR('AAAAAAA','c') FROM DUAL; -> -1. (찾는 값이 없으면 -1)

 

- RTRIM/LTRIM
SELECT RTRIM('WOWWWW','W') FROM DUAL; -> W

오른쪽부터 W의 값을 모두 지운다. 지우다가 W가 아닌 다른 문자를 만나면 종료

 

 

날짜 함수

날짜는 연산이 가능하다.

 

--SYSDATE (GETDATE())
SELECT SYSDATE FROM DUAL; -> 현재 컴퓨터의 날짜, 시간 출력

 

--더하기

SELECT SYSDATE + 5 FROM DUAL; -> 5를 더하면 5'일'이 더해진다.

 

--ROUND
SELECT STARTDATE,ROUND(STARTDATE,'YEAR') FROM PERSONNEL;

'YEAR', 즉 연도가 반올림되어진다.

1~4월이면 내려가고 5월 이후로는 반올림이 올라간다.

 

--MONTHS_BETWEEN
SELECT MONTHS_BETWEEN(SYSDATE,'1998/05/01') YEAR FROM DUAL;

현재 날짜와 입력한 날짜 사이의 달 수를 구한다.

 

--LAST_DAY
SELECT STARTDATE,LAST_DAY(STARTDATE) FROM PERSONNEL;

현재 시스템 날짜 달의 '말일'을 나타낸다.

 

 

 

 

반응형
profile

아무튼 개발

@릴쥬

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...