DataBase
[Oracle] 오라클 함수 모음
izen8
2011. 10. 13. 10:47
반응형
오라클 각종 함수
1. SQL관련 예약어 조회
○ ORACLE DB에는 예약어가 존재하여 사용을 금지하거나, 사용을 권장하지
않는 단어가 있다. SYSDATE, DESC 등 이와 관련된 내용을 조회하는 view는
다음과 같다
- SELECT * FROM V$RESERVED_WORDS
2. 오라클 비교함수
○ 오라클 비교함수 관련 하여 많이 쓰고 있는 함수를 정리했습니다.
NVL(col명,값) : col의 값이 null를 가질때 값을 가진다.
ex> 100+NULL은 NULL이 되기 때문에 이러한 문제점을 해결할 때 사용한다.
select ename,sal,comm,sal+nvl(comm,0) from emp;
-->sal값과 comm값을 더하는데 comm값이 null값이면 0값을 취한다...
산술 함수
ABS(n) : 절대값 |n| , 대입 값의 절대 값을 복귀시킨다
ex> select abs(-200.1),abs(200.2) from dual; ----> 200.1 200.2
sin() cos() tan() sinH() cosH() tanH() : radian값을 이용
cos는 주워진 값의 cosine값을 cosh는 주워진 Hyperbolic cosine 값을 반환한다
tan은 Tangent 값을 Tanh는 Hyperbolic Tangent 값을 반환한다
ex> select cos(180*3.141592/180) from dual; ----> -1
ex> 30' 일 경우 sin(30* (3.14.../180));
exp(n) : 지수값 e를 밑으로 하는 e의 n승 값;
ex> select exp(1), exp(2) from dual; ----> 2.71828183 7.3890561
LN(n) : 자연 log값 밑수 e 지수 n
ex> select ln(1.0), ln(2.3) from dual; ----> 0 .832909123
log(m,n) m을 기수로 이용하여 n의 대수를 복귀시킨다
ex> select log(10,1), log(10,2) from dual; ----> 0 .301029996
SQRT(n) : 루트n
ex> select sqrt(36) from dual; ----> 6
power(m,n) : m의 n승
ex> select power(10,2), power(10,3) from dual; ----> 100 1000
MOD(m.n) : m을 n으로 나눈 나머지를 retirn 한다 C언어의 m%n 동일하다
ex> select mod(5,2) from dual; ----> 1
floor(n) : n보다 작은 정수값들중에서 최대값
ex> select floor(20.3),floor(-30.2) from dual; ----> 20 -31
ceil(n) : n보다 큰 정수값들중에서 최소값
주워진 값보다 근접한 큰수중 제일 작은 값을 구한다. 음수인경우는 양수의 경우 와 다르게 return(주의)
ex> floor(3.5) --> 3 , ceil (3.5) --> 4
floor(-3.2) --> -4 , ceil (-3.5) --> -3
ex> select ceil(-15.1), ceil(+10.3) from dual; ----> -15 11
greatest(m,n) : 두 수중에서 큰것
least(m,n) : 두 수중에서 작은 것
TO_NUMBER('숫자형 문자열') : 문자를 숫자로 변환
sign 만약 값이 0보다 크면 1, 만약 값이 0 같으면 0, 만약 값이 작으면 -1
ex> select sign(-15), sign(0),sign(+10) from dual; ----> -1 0 1
ADD_MONTHS ( d , n ) : returns the date d plus n months.
SELECT TO_CHAR(ADD_MONTHS(hiredate,1),’DD-MON-YYYY’) "Next month" FROM emp WHERE ename = ’SMITH’; ----> 17-JAN-1981
round(n,[m]) n값의 반올림을 하는 함수로 m은 소숫점 아래 자리수 만큼 구한다.
ex> select round(20.2354,2),round(20.2354,3),round(20.2354,4) from dual; ----> 20.24 20.235 20.2354
trunc(n,[m]) n값의 반내림을 하는 함수로 m은 소숫점 아래 자릿수만큼 구한다
ex> select trunc(20.2344,2),trunc(20.2354,3),trunc(20.2354,4) from dual; ----> 20.23 20.235 20.2354
ex> Round(2.4678, 2) --> 2.47 , trunc(2.4687, 2) --> 2.46
Round(3654.26, -2) --> 3700 , trunc (3654.26, -2 ) --> 3600
문자열 함수
lower() : 소문자로 변환시켜주는 함수
upper() : 대문자로 변환시켜주는 함수
Initcap() : 단어의 첫자만 대문자로 나머지는 소문자로
ex> Initcap('i LOVE you') ----> I Love You
ength() : 문자열의 길이
SUBSTR(문자열,위치,갯수) : 해당위치에서 갯수만큼의 문자열을 추출한다.
SUBSTR( char , m ,[n] ) m이 음수일 경우에는 뒤에서 M번째 문자부터 반대 방향으로 n개의 문자를 반환합니다.
ex> SELECT SUBSTR('JUNG-SICK', 3, 3) NAME FROM dual ; ----> NG-
ex> SELECT SUBSTR('JUNG-SICK', -3, 3) NAME FROM dual ; ----> ICK
ex> substr ('KOREA', 3, 2) ----> 'RE' //3번째인 R부터 2글자 출력
instr(문자열,찾을 문자열[,위치,찾을위치]) : 문자열에서 이 문자를 찾아라. return값은 찾은 위치
ex> Instr("abcdabkdoerabjdlfjdg","ab") -----> 1 //1번째에서 시작해서 처음 ab가 나타나는 1출력
ex> Instr("abcdabkdoerabjdlfjdg","ab",4,2) ----> 12 //4번째부터 시작해서 두번째 나타나는 ab 출력
decode(col명,비교값,취할값,비교값,취할값,....기본값) : col값이 비교값이면 취할값으로 대체.
ex> decode(deptno,10,'총무부',20,'영업부',30,'전산부','관리부') : deptno가 10이면 총무부, 20이면 영업부, 30이면 전산부
나머지 는 관리부 출력
ex> select decode(name,'홍길동','의적','홍수환','참피언','차두리','축구선수','사람');
CHR(N) CHR 함수는 이진 N 값에 해당하는 문자 즉 ascii N 값을 반환한다
ex> select chr(66) from dual; ----> B
concat(char1,char2) 주워진 두 문자열을 합친다 || 연산자와 같다
ex> select concat(name,'은 성실하다') name from wowbbs; ----> 홍길동은 성실하다
length 문자열 길이 구하기
ex> SELECT length('123456789') from dual ; ----> 9
substr(문자열,시작위치,문자수) 문자열 구하기
ex> SELECT substr('123456789',2,3) from dual ; ----> 234
initcap(char) 문자의 첫번째 를 대문자로 변환시킨다
ex> SELECT init('wowschool') name FROM DUAL; ----> Wow school
lower(char) 모든 문자열을 소문자로 변환시킨다
ex> SELECT lower('WOWSCHOOL') name FROM DUAL; ----> wow school
UPPER(CHAR) 모든 문자열을 대문자로 변환시킨다
ex> SELECT lower('wowschoool') name FROM DUAL; ----> WOWSCHOOL
replace(문자열,교체대상 문자열, 교체할문자열) 문자열 중 일부 교체 하기
ex> SELECT REPLACE('ok wow school' ,'ok','www') " wowschool" FROM DUAL; ----> www wow school
rtrim 문자열 트리밍 하기 오른쪽 space 제거
ex> SELECT Rtrim(' ok wow school ' ) ,length(Rtrim(' ok wow school ')) FROM DUAL;
----> ok wow school 15
ltrim 문자열 트리밍 하기 왼쪽 space 제거
ex> SELECT ltrim(' ok wow school ' ) ,length(ltrim(' ok wow school ') ) FROM DUAL;
----> ok wow school 18
RPAD 자열 Rpad 하기
ex> SELECT RPAD('1234', 10, '0') NAME FROM dual ; ----> 1234000000
ex> SELECT RPAD('school', 12, '*') NAME FROM dual ; ----> school******
lpad 문자열 Lpad 하기
ex> SELECT LPAD('1234', 10, '0') NAME FROM dual ; ----> 0000001234
ex> SELECT LPAD('school', 12, '*') NAME FROM dual ; ----> ******school
NLS_INITCAP() initcap 동일 하고 다국어지원
ex> SELECT NLS_INITCAP (’ijsland’) "InitCap" FROM DUAL; ----> Ijsland
ex> SELECT NLS_INITCAP(’ijsland’, ’NLS_SORT = XDutch’) "InitCap" FROM DUAL; ----> IJsland
NLS_LOWER() LOWER 동일 하고 다국어지원
ex> SELECT NLS_LOWER (’CITTA’’’, ’NLS_SORT = XGerman’) "Lowercase" FROM DUAL; ----> citta
NLS_UPPER() UPPER 동일 하고 다국어지원
ex> SELECT NLS_UPPER (’große’, ’NLS_SORT = XGerman’) "Uppercase" FROM DUAL; ----> GROSS
ASCII 문자열을 ASCII 수치값으로 변환 시킨다
ex> select ASCII('a') from dual; ----> 97
instr 문자열에서 패턴의 어커런스를 찾아낸다
ex> select instr('wowschool 죽인다','ch') from dual; ----> 5
concat 두 문자열을 결합한다 || 같은 기능을 한다
ex> select concat('wow','school') from dual; ----> wowschool
날짜 함수
ROUND(d[,m]) m에 지정된 단위로 반올림 한다, m가 연도면 연도 단위로 반올림 한다.
ex> SELECT ROUND(TO_DATE('2004/06/30'), 'YEAR') FROM dual ; ----> 04/01/01
ex> SELECT ROUND(TO_DATE('2004/06/30'), 'MONTH') FROM dual ; ----> 04/07/01
ex> SELECT ROUND(TO_DATE('2004/06/30'), 'DAY') FROM dual ; ----> 04/06/27
TO_CHAR(날짜,'포맷') : 날짜를 문자열로 바꾼다.
TO_DATE(문자열,'포맷') : 문자열을 날짜로 ex> TO_DATE('97-10-14',' -----')
ADD_MONTHS(날짜,n) : 현재 날짜에 n개월수를 더한다.
ex> SELECT TO_Char(ADD_MONTHS(SYSDATE,2),'RRRR:MM:DD') FROM dual ; ----> 2004:09:18
MONTHS_BETWEEN(날짜1,날짜2) : 두 날짜의 개월수의 차를 구한다.
ex> SELECT MONTHS_BETWEEN(TO_DATE('2004/06/25'), TO_DATE('2000/06/25')) "date" FROM dual ; ----> 48
LAST_DAY(날짜) : 그 달의 마지막 날짜를 구한다.
ex> SELECT LAST_DAY(SYSDATE) LASTDAY FROM dual ; ---> 04/07/31
NEXT_DAY(날짜,'요일') : 날짜로 부터 다음에 나오는 요일은 며칠인가
ex> next_day(sysdate,'금요일')
날짜 + n : 날짜에다 n 일을 더한다.
포맷:
yy : 년도를 2자리로
yyyy : 년도를 4자리로
year : 영어 철자로 표시
mm :월을 표시(01-12)
mon :월을 표시(DEC....):약자로 나온다.
month :월을 표시(1월,2월,....혹은 ,DECEMBER)
d :일을 표시(주에 대한 일)
dd :일을 표시 (월에 대한 일)
ddd :일을 표시 (년에 대한 일)
Q : 분기를 구한다.
DAY :요일 (월요일)
DY :요일(월)
HH & HH12 :시간을 12시간제로
HH24 :24시간제로
MI:분
SS:초
AM & PM & A.M & P.M:12시간제 일때 오전 오후를 표시
접미사로 사용하는 포맷
TH:서수로 표시 ex> 4 -> DD ->4
4-> DDTH -> 4TH
SP:철자로 표시 ex> 4 ->DDSP -> FOUR
SPTH & THSP ex> 4 -> DDSPTH -> FOURTH
근무한 년월 수 ex> column "근무년수" Format a 14;
그룹 함수
group함수 :
NULL값은 계산되지 않는다.
여러개의 데이타에 대한 결과 이므로 그룹함수라 한다
단일 필드와 함께 사용할 수 없다.
만약 단일 필드와 사용되면 group by절에 반드시 나와야 한다.
sum() : 합
avg() : 평균
count() : 갯수 count(*): 리턴되는 레코드의 수를 계산
ex> select deptno,sum(sapay) from sawon; 에러
-->단위 필드이므로 따라서 마지막에 group by deptno;라고 지정해주면 사용가능
max() : 최대값
min() : 최소값
stddev : 표준편차
variance : 분산
변환 함수
to_char DATE형, NUMBER형을 문자형으로 변환 해줌
ex> SELECT TO_CHAR(SYSDATE, 'MONTH') CURR FROM dual ; ----> 7월
24시간 기초로 표시
ex> SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS') CURR FROM dual ; ----> 14:44:26
12시간 기초로
ex> SELECT TO_CHAR(SYSDATE, 'HH:MI:SS') CURR FROM dual ; ----> 02:49:00
to_number 문자를 숫자형으로 변환시킨다
ex> SELECT TO_number('1234') FROM dual ; ----> 1234
to_date
ex> SELECT TO_DATE('2004/07/30','RRRR/MM/DD') FROM dual ; ----> 04/07/30
기타 함수
○ ORACLE DB에는 예약어가 존재하여 사용을 금지하거나, 사용을 권장하지
않는 단어가 있다. SYSDATE, DESC 등 이와 관련된 내용을 조회하는 view는
다음과 같다
- SELECT * FROM V$RESERVED_WORDS
2. 오라클 비교함수
○ 오라클 비교함수 관련 하여 많이 쓰고 있는 함수를 정리했습니다.
NVL(col명,값) : col의 값이 null를 가질때 값을 가진다.
ex> 100+NULL은 NULL이 되기 때문에 이러한 문제점을 해결할 때 사용한다.
select ename,sal,comm,sal+nvl(comm,0) from emp;
-->sal값과 comm값을 더하는데 comm값이 null값이면 0값을 취한다...
산술 함수
ABS(n) : 절대값 |n| , 대입 값의 절대 값을 복귀시킨다
ex> select abs(-200.1),abs(200.2) from dual; ----> 200.1 200.2
sin() cos() tan() sinH() cosH() tanH() : radian값을 이용
cos는 주워진 값의 cosine값을 cosh는 주워진 Hyperbolic cosine 값을 반환한다
tan은 Tangent 값을 Tanh는 Hyperbolic Tangent 값을 반환한다
ex> select cos(180*3.141592/180) from dual; ----> -1
ex> 30' 일 경우 sin(30* (3.14.../180));
exp(n) : 지수값 e를 밑으로 하는 e의 n승 값;
ex> select exp(1), exp(2) from dual; ----> 2.71828183 7.3890561
LN(n) : 자연 log값 밑수 e 지수 n
ex> select ln(1.0), ln(2.3) from dual; ----> 0 .832909123
log(m,n) m을 기수로 이용하여 n의 대수를 복귀시킨다
ex> select log(10,1), log(10,2) from dual; ----> 0 .301029996
SQRT(n) : 루트n
ex> select sqrt(36) from dual; ----> 6
power(m,n) : m의 n승
ex> select power(10,2), power(10,3) from dual; ----> 100 1000
MOD(m.n) : m을 n으로 나눈 나머지를 retirn 한다 C언어의 m%n 동일하다
ex> select mod(5,2) from dual; ----> 1
floor(n) : n보다 작은 정수값들중에서 최대값
ex> select floor(20.3),floor(-30.2) from dual; ----> 20 -31
ceil(n) : n보다 큰 정수값들중에서 최소값
주워진 값보다 근접한 큰수중 제일 작은 값을 구한다. 음수인경우는 양수의 경우 와 다르게 return(주의)
ex> floor(3.5) --> 3 , ceil (3.5) --> 4
floor(-3.2) --> -4 , ceil (-3.5) --> -3
ex> select ceil(-15.1), ceil(+10.3) from dual; ----> -15 11
greatest(m,n) : 두 수중에서 큰것
least(m,n) : 두 수중에서 작은 것
TO_NUMBER('숫자형 문자열') : 문자를 숫자로 변환
sign 만약 값이 0보다 크면 1, 만약 값이 0 같으면 0, 만약 값이 작으면 -1
ex> select sign(-15), sign(0),sign(+10) from dual; ----> -1 0 1
ADD_MONTHS ( d , n ) : returns the date d plus n months.
SELECT TO_CHAR(ADD_MONTHS(hiredate,1),’DD-MON-YYYY’) "Next month" FROM emp WHERE ename = ’SMITH’; ----> 17-JAN-1981
round(n,[m]) n값의 반올림을 하는 함수로 m은 소숫점 아래 자리수 만큼 구한다.
ex> select round(20.2354,2),round(20.2354,3),round(20.2354,4) from dual; ----> 20.24 20.235 20.2354
trunc(n,[m]) n값의 반내림을 하는 함수로 m은 소숫점 아래 자릿수만큼 구한다
ex> select trunc(20.2344,2),trunc(20.2354,3),trunc(20.2354,4) from dual; ----> 20.23 20.235 20.2354
ex> Round(2.4678, 2) --> 2.47 , trunc(2.4687, 2) --> 2.46
Round(3654.26, -2) --> 3700 , trunc (3654.26, -2 ) --> 3600
문자열 함수
lower() : 소문자로 변환시켜주는 함수
upper() : 대문자로 변환시켜주는 함수
Initcap() : 단어의 첫자만 대문자로 나머지는 소문자로
ex> Initcap('i LOVE you') ----> I Love You
ength() : 문자열의 길이
SUBSTR(문자열,위치,갯수) : 해당위치에서 갯수만큼의 문자열을 추출한다.
SUBSTR( char , m ,[n] ) m이 음수일 경우에는 뒤에서 M번째 문자부터 반대 방향으로 n개의 문자를 반환합니다.
ex> SELECT SUBSTR('JUNG-SICK', 3, 3) NAME FROM dual ; ----> NG-
ex> SELECT SUBSTR('JUNG-SICK', -3, 3) NAME FROM dual ; ----> ICK
ex> substr ('KOREA', 3, 2) ----> 'RE' //3번째인 R부터 2글자 출력
instr(문자열,찾을 문자열[,위치,찾을위치]) : 문자열에서 이 문자를 찾아라. return값은 찾은 위치
ex> Instr("abcdabkdoerabjdlfjdg","ab") -----> 1 //1번째에서 시작해서 처음 ab가 나타나는 1출력
ex> Instr("abcdabkdoerabjdlfjdg","ab",4,2) ----> 12 //4번째부터 시작해서 두번째 나타나는 ab 출력
decode(col명,비교값,취할값,비교값,취할값,....기본값) : col값이 비교값이면 취할값으로 대체.
ex> decode(deptno,10,'총무부',20,'영업부',30,'전산부','관리부') : deptno가 10이면 총무부, 20이면 영업부, 30이면 전산부
나머지 는 관리부 출력
ex> select decode(name,'홍길동','의적','홍수환','참피언','차두리','축구선수','사람');
CHR(N) CHR 함수는 이진 N 값에 해당하는 문자 즉 ascii N 값을 반환한다
ex> select chr(66) from dual; ----> B
concat(char1,char2) 주워진 두 문자열을 합친다 || 연산자와 같다
ex> select concat(name,'은 성실하다') name from wowbbs; ----> 홍길동은 성실하다
length 문자열 길이 구하기
ex> SELECT length('123456789') from dual ; ----> 9
substr(문자열,시작위치,문자수) 문자열 구하기
ex> SELECT substr('123456789',2,3) from dual ; ----> 234
initcap(char) 문자의 첫번째 를 대문자로 변환시킨다
ex> SELECT init('wowschool') name FROM DUAL; ----> Wow school
lower(char) 모든 문자열을 소문자로 변환시킨다
ex> SELECT lower('WOWSCHOOL') name FROM DUAL; ----> wow school
UPPER(CHAR) 모든 문자열을 대문자로 변환시킨다
ex> SELECT lower('wowschoool') name FROM DUAL; ----> WOWSCHOOL
replace(문자열,교체대상 문자열, 교체할문자열) 문자열 중 일부 교체 하기
ex> SELECT REPLACE('ok wow school' ,'ok','www') " wowschool" FROM DUAL; ----> www wow school
rtrim 문자열 트리밍 하기 오른쪽 space 제거
ex> SELECT Rtrim(' ok wow school ' ) ,length(Rtrim(' ok wow school ')) FROM DUAL;
----> ok wow school 15
ltrim 문자열 트리밍 하기 왼쪽 space 제거
ex> SELECT ltrim(' ok wow school ' ) ,length(ltrim(' ok wow school ') ) FROM DUAL;
----> ok wow school 18
RPAD 자열 Rpad 하기
ex> SELECT RPAD('1234', 10, '0') NAME FROM dual ; ----> 1234000000
ex> SELECT RPAD('school', 12, '*') NAME FROM dual ; ----> school******
lpad 문자열 Lpad 하기
ex> SELECT LPAD('1234', 10, '0') NAME FROM dual ; ----> 0000001234
ex> SELECT LPAD('school', 12, '*') NAME FROM dual ; ----> ******school
NLS_INITCAP() initcap 동일 하고 다국어지원
ex> SELECT NLS_INITCAP (’ijsland’) "InitCap" FROM DUAL; ----> Ijsland
ex> SELECT NLS_INITCAP(’ijsland’, ’NLS_SORT = XDutch’) "InitCap" FROM DUAL; ----> IJsland
NLS_LOWER() LOWER 동일 하고 다국어지원
ex> SELECT NLS_LOWER (’CITTA’’’, ’NLS_SORT = XGerman’) "Lowercase" FROM DUAL; ----> citta
NLS_UPPER() UPPER 동일 하고 다국어지원
ex> SELECT NLS_UPPER (’große’, ’NLS_SORT = XGerman’) "Uppercase" FROM DUAL; ----> GROSS
ASCII 문자열을 ASCII 수치값으로 변환 시킨다
ex> select ASCII('a') from dual; ----> 97
instr 문자열에서 패턴의 어커런스를 찾아낸다
ex> select instr('wowschool 죽인다','ch') from dual; ----> 5
concat 두 문자열을 결합한다 || 같은 기능을 한다
ex> select concat('wow','school') from dual; ----> wowschool
날짜 함수
ROUND(d[,m]) m에 지정된 단위로 반올림 한다, m가 연도면 연도 단위로 반올림 한다.
ex> SELECT ROUND(TO_DATE('2004/06/30'), 'YEAR') FROM dual ; ----> 04/01/01
ex> SELECT ROUND(TO_DATE('2004/06/30'), 'MONTH') FROM dual ; ----> 04/07/01
ex> SELECT ROUND(TO_DATE('2004/06/30'), 'DAY') FROM dual ; ----> 04/06/27
TO_CHAR(날짜,'포맷') : 날짜를 문자열로 바꾼다.
TO_DATE(문자열,'포맷') : 문자열을 날짜로 ex> TO_DATE('97-10-14',' -----')
ADD_MONTHS(날짜,n) : 현재 날짜에 n개월수를 더한다.
ex> SELECT TO_Char(ADD_MONTHS(SYSDATE,2),'RRRR:MM:DD') FROM dual ; ----> 2004:09:18
MONTHS_BETWEEN(날짜1,날짜2) : 두 날짜의 개월수의 차를 구한다.
ex> SELECT MONTHS_BETWEEN(TO_DATE('2004/06/25'), TO_DATE('2000/06/25')) "date" FROM dual ; ----> 48
LAST_DAY(날짜) : 그 달의 마지막 날짜를 구한다.
ex> SELECT LAST_DAY(SYSDATE) LASTDAY FROM dual ; ---> 04/07/31
NEXT_DAY(날짜,'요일') : 날짜로 부터 다음에 나오는 요일은 며칠인가
ex> next_day(sysdate,'금요일')
날짜 + n : 날짜에다 n 일을 더한다.
포맷:
yy : 년도를 2자리로
yyyy : 년도를 4자리로
year : 영어 철자로 표시
mm :월을 표시(01-12)
mon :월을 표시(DEC....):약자로 나온다.
month :월을 표시(1월,2월,....혹은 ,DECEMBER)
d :일을 표시(주에 대한 일)
dd :일을 표시 (월에 대한 일)
ddd :일을 표시 (년에 대한 일)
Q : 분기를 구한다.
DAY :요일 (월요일)
DY :요일(월)
HH & HH12 :시간을 12시간제로
HH24 :24시간제로
MI:분
SS:초
AM & PM & A.M & P.M:12시간제 일때 오전 오후를 표시
접미사로 사용하는 포맷
TH:서수로 표시 ex> 4 -> DD ->4
4-> DDTH -> 4TH
SP:철자로 표시 ex> 4 ->DDSP -> FOUR
SPTH & THSP ex> 4 -> DDSPTH -> FOURTH
근무한 년월 수 ex> column "근무년수" Format a 14;
그룹 함수
group함수 :
NULL값은 계산되지 않는다.
여러개의 데이타에 대한 결과 이므로 그룹함수라 한다
단일 필드와 함께 사용할 수 없다.
만약 단일 필드와 사용되면 group by절에 반드시 나와야 한다.
sum() : 합
avg() : 평균
count() : 갯수 count(*): 리턴되는 레코드의 수를 계산
ex> select deptno,sum(sapay) from sawon; 에러
-->단위 필드이므로 따라서 마지막에 group by deptno;라고 지정해주면 사용가능
max() : 최대값
min() : 최소값
stddev : 표준편차
variance : 분산
변환 함수
to_char DATE형, NUMBER형을 문자형으로 변환 해줌
ex> SELECT TO_CHAR(SYSDATE, 'MONTH') CURR FROM dual ; ----> 7월
24시간 기초로 표시
ex> SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS') CURR FROM dual ; ----> 14:44:26
12시간 기초로
ex> SELECT TO_CHAR(SYSDATE, 'HH:MI:SS') CURR FROM dual ; ----> 02:49:00
to_number 문자를 숫자형으로 변환시킨다
ex> SELECT TO_number('1234') FROM dual ; ----> 1234
to_date
ex> SELECT TO_DATE('2004/07/30','RRRR/MM/DD') FROM dual ; ----> 04/07/30
기타 함수
user : 현재 접속된 사용자를 보여준다.
반응형