반응형
2022.04.25 - [IT/SQLP] - [SQL 기초강의] 4강. WHERE
* 함수구분
함수 구분 | 설명 |
문자 | 문자를 입력 값으로 받으며 문자 또는 숫자 값을 반환 합니다. |
숫자 | 숫자를 입력하면 숫자 값을 반환합니다. |
날짜 | DATE 데이터 유형의 값에 동작합니다. 모든 날짜 함수는 DATE 데이터 유형 값을 반환하며 MONTHS_BETWEEN 함수만 숫자를 반환합니다. |
변환 | 값의 데이터 유형을 변환합니다. |
일반 | NVL, NVL2, DECODE, CASE 등 |
* 문자함수
함수 | 용도 | 예제 |
upper | 알파벳 값을 대문자로 변환 | select * from (select 'aBcD' ori_col from dual) t1, (select upper('aBcD') upper_col from dual) t2, (select lower('aBcD') lower_col from dual) t3 |
lower | 알파벳 값을 소문자로 변환 | |
concat | 두 문자열을 하나로 연결. ||과 동일해서 자주 사용 안함 |
select concat('aa','bb') from dual; select 'aa'||'bb' from dual; |
substr | 문자열중 원하는 부분만 선택 (문자 수 기준) (세 번째 인자값이 없을 경우 문자열의 끝까지를 의미) |
select ori_col , substr(ori_col,1,2) , substr(ori_col,3,4) from ( select '123456' ori_col from dual ); select ori_col , substr(ori_col,1,2) , substr(ori_col,3,3) from ( select '가나다라마바사' ori_col from dual ); |
substrb | substr과 달리 문자수가 아닌 문자의 byte 기준 | select ori_col , substrb(ori_col,1,2) , substrb(ori_col,3,3) from ( select '123456' ori_col from dual ); select ori_col , substrb(ori_col,1,2) , substrb(ori_col,3,3) from ( select '가나다라마바사' ori_col from dual ); |
함수 | 용도 | 예제 |
replace | 첫 번째 인자 값에서 두 번째 인자 값에 해당하는 문자를 세 번째 인자 값으로 바꿈 | select replace('Oracle 10g','10g', '11g') from dual; |
length | 문자열 길이를 구함 (문자 수 기준) |
select length('123') from dual; select length('가나다') from dual; |
lengthb | 문자열 길이를 구함 (Bytes 기준) |
select lengthb('123') from dual; select lengthb('가나다') from dual; |
lpad | 첫째 인자에 둘째 인자를 셋째 인자 길이(Byte)가 될 때까지 왼쪽부터 채움. | select lpad('123',10,'*') from dual union all select lpad('가나다',10,'*') from dual; |
rpad | lpad와 달리 오른쪽을 채움 | |
ltrim | 왼쪽부터 해당 문자 제거. 인자 값 없을 시 공백 제거 |
select ltrim(' xxAxBC') from dual; select ltrim('xxAxBC','x') from dual; à왼쪽부터 x가 아닌 문자를 만날 때까지 x를 제거한 후
select ltrim(' ') from dual; à null과 동일나머지를 리턴. |
rtrim | ltrim과 달리 오른쪽부터 수행. | |
trim | 왼쪽과 오른쪽의 공백을 제거 | select trim(' xxAxBC ') from dual; select trim('xxAxBCxx','x') from dual; à 오류 |
함수 | 용도 | 예제 |
ascii | 특정 값의 아스키코드를 리턴 | select ascii('A') from dual; |
instr | 문자열에서 특정 문자의 위치를 리턴. 찾는 값이 없으면 0 리턴. 양쪽 % 사용 like 대체로 사용 가능. |
select instr('abcabcabc','c',1,2) from dual; select instr('abcabcabc','c',4,2) from dual; select * from ( select 'abcd' col1 from dual union all select 'bcd' from dual union all select 'xx' from dual ) where instr(col1,'d',1,1) >= 1 ; select * from ( select 'abcd' col1 from dual union all select 'bcd' from dual union all select 'xx' from dual ) where col1 like '%d%' ; |
* 숫자함수
함수 | 용도 | 예제 |
round | 지정된 소수점 자리로 값을 반올림. | SELECT ROUND(45.923,2) ,ROUND(45.923,0) ,ROUND(45.923,-1) FROM DUAL ; |
trunc | 지정된 소수점 자리까지 남기고 값 버리기 | SELECT TRUNC(45.923 , 2) ,TRUNC(45.923 ) ,TRUNC(45.923 , -2) FROM DUAL ; |
mod | 나머지 값 | SELECT mod(10,3) FROM DUAL ; |
* 날짜 함수
함수 | 용도 | 예제 |
add_months | 날짜에 달 수 더하기, 빼기 |
select add_months( to_date('20190105','yyyymmdd') ,1 ) from dual; select add_months( to_date('20190105','yyyymmdd') ,-1 ) from dual; |
months_between | 두 날짜 간의 달 수 | select months_between( col2, col1 ) from ( select to_date('20190105','yyyymmdd') col1 , to_date('20190315','yyyymmdd') col2 from dual ) |
last_day | 해당 달의 마지막 날 | select last_day( to_date('20190105','yyyymmdd') ) from dual ; |
next_day | 입력일 이후에 해당 요일이 처음 돌아오는 일자 |
select next_day( to_date('20190101','yyyymmdd'), 1 ) from dual ; --> 1(일요일)부터 7(토요일)까지 가능 |
반응형
'IT > SQLP' 카테고리의 다른 글
[SQL 기초강의] 6강. 데이터 형변환 (0) | 2022.05.03 |
---|---|
[SQLP] 실전 대비 문제 (1장 데이터모델링, sql 활용) (0) | 2022.05.01 |
[SQL 기초강의] 4강. WHERE (0) | 2022.04.25 |
[SQL 기초강의] 3강. NULL, DISTINCT (0) | 2022.04.22 |
SQLP 기출문제 3편 (0) | 2022.04.22 |
댓글