콘텐츠로 이동

8. 산술 연산자#

이 장에서는 SQL 문에 사용되는 산술 연산자들에 대해서 자세히 설명한다.

산술 연산자#

산술 연산자는 숫자 값에 대해 부호를 붙이거나, 더하기, 빼기, 곱하기, 및 나누기를 하는데 사용되는 연산자이다. 이런 연자자들 중 일부는 날짜 데이터에 대한 계산을 수행하는데 사용될수도 있다. 산술 연산자는 숫자 데이터 타입 또는 내부적으로 숫자형으로 변환이 가능한 데이터 타입에 대해서 수행될 수 있다.

산술 연산자의 종류#

다음은 Altibase에서 지원하는 산술 연산자의 종류와 이에 대한 간단한 설명이다.

산술 연산자 설명
단항 연산자(+) 명시적으로 양수를 나타낸다
단항 연산자(-) 입력 수의 부호를 반전시킨다
이항 연산자(사칙) 두 입력 수에 대해 계산한다
연결 연산자 두 문자열을 합친다

단항 연산자#

양수 부호#

구문#

+ number

설명#

이 연산자는 입력된 number를 명시적으로 양수로 표시한다.

음수 부호#

구문#

- number

설명#

이 연산자는 입력한 number의 부호를 반전시킨다.

이항 연산자#

더하기#

구문#

number1 + number2

설명#

이 연산자는 number1number2 를 더한 결과를 돌려준다.

빼기#

구문#

number1 - number2

설명#

이 연산자는 number1에서 number2를 뺀 결과를 돌려준다.

곱하기#

구문#

number1 x number2

설명#

이 연산자는 number1number1를 곱한 결과를 돌려준다.

나누기#

구문#

number1 / number2

설명#

이 연산자는 number1number2로 나눈 결과를 돌려준다.

날짜 타입의 데이터에 산술 연산 수행#

구문#

DATE 타입의 값에 수를 더하거나 뺄 때, 그 수는 일 단위로 해석된다. 그러므로, DATE 타입 값에 시, 분, 또는 초를 더하거나 빼려면 더하거나 빼고자 하는 시, 분, 초의 숫자를 아래와 같이 일로 변환해서 입력해야 한다.

date [ + | - ] n
date – date
date [ + | - ] days (더하기/빼기 n일: n)
date [ + | - ] hours (더하기/빼기 n시간: n/24)
date [ + | - ] minutes (더하기/빼기 n분: n/(24*60) )
date [ + | - ] seconds (더하기/빼기 n초: n/(24*60*60))

주의

DATE 타입 값에 대한 곱하기 또는 나누기 연산은 불가능하다.

예제#

<질의> 부서 4001에 속한 모든 사원의 이름 및 근무한 주 수를 출력하라.

SELECT e_firstname
     , e_lastname
     , (SYSDATE-join_date)/7 weeks_worked
  FROM employees
 WHERE dno = 4001;
E_FIRSTNAME           E_LASTNAME            WEEKS_WORKED
-----------------------------------------------------------------------
Xiong                 Wang                  115.778199044248
Curtis                Diaz                  87.6353419013905
John                  Huxley                224.492484758533
3 rows selected

<질의> 현재 시간에서 10분 후의 시간을 출력하라.

SELECT SYSDATE + (10/(24*60)) '10 MINUTES LATER'
  FROM DUAL;
10 MINUTES LATER 
-----------------------
2005/01/20 09:59:34 
1 row selected.

연결 연산자#

구문#

char1 || char2

설명#

이 연산자는 두개의 문자열 char1char2를 합친다.

예제#

<질의> 사원 이름과 직책사이에 ' is a '를 삽입하여 하나의 칼럼으로 출력하라.

SELECT RTRIM(e_firstname) || ' ' || RTRIM(e_lastname) || ' is a ' || emp_job || '.' job_description
  FROM employees;
JOB_DESCRIPTION
-------------------------------------------------------------------
.
.
.
Aaron Foster is a PL.
Farhad Ghorbani is a PL.
Ryu Momoi is a programmer.
Gottlieb Fleischer is a manager.
.
.
.
20 rows selected.

CAST 연산자#

구문#

CAST (expr AS data_type)

설명#

이 연산자는 expr을 명시적으로 주어진 data_type의 값으로 변환한다. (BLOB과 CLOB 타입을 제외한 모든 타입이 지원된다.)

예제#

<질의> 문자열을 DOUBLE타입의 값으로 변환하라.

SELECT CAST('3.14159265359' AS DOUBLE) pi
  FROM DUAL;
PI
------------------------- 
3.14159265359
1 row selected.