[Database/Oracle] 8-1. 단일행 함수 : 수학함수, 문자열 함수

minj-j·2022년 10월 24일
0

Oracle

목록 보기
8/13
post-thumbnail

단일행 함수

  • 하나의 행을 input하면 하나의 output이 나와야 한다

1. 수학 함수

sin(), cos(), tan(), log(), power()

해당하는 값들을 계산해서 출력해 준다.

select sin(10), cos(10), tan(10), log(10,2), power(6,4) from dual;

   SIN(10)    COS(10)    TAN(10)  LOG(10,2) POWER(6,4)
---------- ---------- ---------- ---------- ----------
-.54402111 -.83907153 .648360827 .301029996       1296

반올림 관련 함수 round

round(반올림 할 수, +표시할 자리 수)
round(반올림 할 수, -정수 자리에서 버림할 자리 수)

select round(12540.379, 2) from dual; //셋째 자리에서 반올림 하여 소수점 둘째 자리까지 표시해 준다.
select round(12540.379, -2) from dual; //정수 자리 2번째 자리에서 반올림 한다.
select round(12540.579, 0) from dual; //소수점 첫번째 자리에서 반올림한다.

ROUND(12540.379,2) ROUND(12540.379,-2) ROUND(12540.579,0)
------------------ ------------------- ------------------
          12540.38               12500              12541

trunc

소수점 절사나 날짜의 시간을 없앨 때 사용한다.
형식은 반올림 관련 함수와 동일하나 반올림을 하지 않고, 버림한다.

select trunc(12540.379, 2) from dual; //셋째 자리에서 버림 하여 소수점 둘째 자리까지 표시해 준다.
select trunc(12560.379, -2) from dual; //정수 자리 2번째 자리에서 버림 한다.
select trunc(12540.579, 0) from dual; //소수점 첫번째 자리에서 버림한다.

TRUNC(12540.379,2) TRUNC(12560.379,-2) TRUNC(12540.579,0)
------------------ ------------------- ------------------
          12540.37               12500              12540

올림 / 내림 관련 함수 CEIL / floor

각각 올림과 내림한 값을 반환해 준다.

select floor(10.98), ceil(10.14) from dual;
FLOOR(10.98) CEIL(10.14)
------------ -----------
          10          11

수학함수 예제

  • 사원명, 급여, 월급(급여/12), 세금(급여의 3.3%)을 추출하라
    (단, 월급은 십단위에서 반올림하고, 세금은 원단위에서 절삭하여 추출하라)
select saname, sapay, round(sapay/12, -2)[->십단위 반올림] "월급", trunc(sapay*0.033, -1)[->원단위 절삭] "세금" from sawon;

2.문자열 함수

문자열 길이 출력 함수 length

  • length : 문자열의 길이를 출력해 주는 함수이다.
  • length : 문자열의 길이를 바이트 단위로 출력해 주는 함수이다.
select length('IT여성기업협회'), lengthb('IT여성기업협회') from dual;
LENGTH('IT여성기업협회') LENGTHB('IT여성기업협회')
------------------------ -------------------------
                       8                        14

공백제거 함수 trim

  • trim("문자열") : 문자열의 양쪽 공백을 제거해 준다.

LTRIM 함수, RTRIM 함수는 반복적인 문자나 특정 문자를 제거할 때 사용하기도 한다.
(옵션은 없어도 된다.)

  • ltrim("문자열", "옵션") : 문자열의 왼쪽 공백과 왼쪽에서 부터 옵션에 설정한 특정한 문자를 제거해 준다.
  • rtrim("문자열", "옵션") : 문자열의 오른쪽 공백과 오른쪽에서 부터 옵션에 설정한 특정한 문자를 제거해 준다.
select trim('  kibwa  kibwa  ') a, rtrim('  kibwa  kibwa  ') a, ltrim('  kibwa  kibwa  ') a from dual;
select trim('k' from 'kibwa  kibwa') from dual;
-- 'kibwa  kibwa'라는 문자열에서 첫 번째 'k'를 제거한다.

TRIM('K'FRO
-----------
ibwa  kibwa

대소문자 변환 함수 upper/lower

  • upper : 입력 문자열을 대문자로 바꾸어 준다.
  • lower : 입력 문자열을 소문자로 바꾸어 준다.
  • initcap : 입력 문자열 중 각 단어의 첫 글자를 대문자로, 나머지는 소문자로 변환하여 반환한다.
select lower('I am Kibwa'), upper('I am Kibwa'), initcap('I am Kibwa') from dual;

LOWER('IAM UPPER('IAM INITCAP('I
---------- ---------- ----------
i am kibwa I AM KIBWA I Am Kibwa

대체 함수 replace

  • replace (컬럼명, '찾을문자', '변환문자') : 특정 문자열을 치환하거나, 제거하기 위해 사용한다.
select replace('i am a kibwa', 'a', 'x') from dual;

REPLACE('IAM
------------
i xm x kibwx

채우기 함수 lpad & rpad

  • lpad & rpad(데이터, 전체크기(데이터 + 채울 문자), '채울문자') : 전체 크기 만큼 데이터 왼/오른쪽 부터 '채울문자'를 채워나간다.
select 30, lpad(30, 5, '0') a from sys.dual;
-- 전체크기 5만큼 30이라는 데이터 왼쪽에서부터 0을 채워나간다.
-- 전체 크키근 5이고 30은 이미 2자리를 차지 했으며로 0은 3개만 들어가면 된다.

        30 A
---------- -----
        30 00030

문자 탐색 함수 instr

  • instr(문자열, '검색할 문자', 시작 지점, N번째로 검색 되는 단어) : 찾는 문자의 위치를 반환 한다.

  • instr 예제

select instr('kibwa_kibwa education center', 'k', 1, 2) from dual;
-- 'kibwa_kibwa education center' 문자열의 1번째 부터 시작하여 2번째로 검색되는 'k'의 위치 값을 반환하라.

INSTR('KIBWA_KIBWAEDUCATIONCENTER','K',1,2)
-------------------------------------------
                                          7

시작지점에 마이너스(-)를 붙이면 오른쪽에서 부터 검색이 가능하다.

select instr('kibwa_kibwa education center', 'k', -1, 2) from dual;
-- 'kibwa_kibwa education center' 문자열의 오른쪽 1번째 부터 시작하여 2번째로 검색되는 'k'의 위치 값을 반환하라.

INSTR('KIBWA_KIBWAEDUCATIONCENTER','K',-1,2)
--------------------------------------------
                                           1

🍀

profile
minj-j`s Development diary!

0개의 댓글