상세 컨텐츠

본문 제목

V. 단일행 함수

DX (Data Transformation)/Database_Oracle

by datasa 2024. 5. 14. 08:56

본문

 

 

 

 

 

 

 

 

 

▶ 단일행 함수

단일행 함수는 Oracle Database에서 테이블의 각 행에 대해 개별적으로 작동하는 함수입니다. 즉, 입력 데이터의 각 행(row)에 대해 개별적으로 계산되며, 각 행의 입력 값에 대해 단일 결과 값을 반환합니다.

단일행 함수는 크게 다음과 같은 5가지 카테고리로 분류됩니다.

1. 숫자 함수

숫자 함수는 숫자 데이터를 처리하는 데 사용되는 함수입니다. 대표적인 숫자 함수로는 다음과 같은 것들이 있습니다.

  • ABS(x): 절대값을 반환합니다. 예: ABS(-5) = 5
  • SQRT(x): 제곱근을 반환합니다. 예: SQRT(16) = 4
  • ROUND(x, precision): 지정된 자릿수까지 반올림합니다. 예: ROUND(12.345, 2) = 12.35
  • POWER(x, y): x를 y제곱승으로 반환합니다. 예: POWER(2, 3) = 8
  • LOG(x): x의 자연로그를 반환합니다. 예: LOG(10) = 2.302585
  • TRUNC(x, precision): 지정된 자릿수 이하까지 버림합니다. 예: TRUNC(12.345, 2) = 12.00
  • CEIL(x): 지정된 자릿수 이하까지 올림합니다. 예: CEIL(12.345, 2) = 13.00
  • FLOOR(x): 지정된 자릿수 이하까지 내림합니다. 예: FLOOR(12.345, 2) = 12.00
  • SIGN(x): x가 양수, 음수, 0인지 판단하여 1, -1, 0을 반환합니다. 예: SIGN(-5) = -1

2. 문자 함수

문자 함수는 문자열 데이터를 처리하는 데 사용되는 함수입니다. 대표적인 문자 함수로는 다음과 같은 것들이 있습니다.

  • LENGTH(x): 문자열의 길이를 반환합니다. 예: LENGTH('Hello') = 5
  • SUBSTR(x, start, length): 문자열의 일부를 추출합니다. 예: SUBSTR('Hello, World!', 7, 5) = 'World'
  • UPPER(x): 문자열을 모두 대문자로 변환합니다. 예: UPPER('hello') = 'HELLO'
  • LOWER(x): 문자열을 모두 소문자로 변환합니다. 예: LOWER('HELLO') = 'hello'
  • LTRIM(x): 문자열의 왼쪽 공백을 제거합니다. 예: LTRIM(' Hello') = 'Hello'
  • RTRIM(x): 문자열의 오른쪽 공백을 제거합니다. 예: RTRIM('Hello ') = 'Hello'
  • REPLACE(x, search, replace): 문자열에서 특정 문자열을 다른 문자열로 치환합니다. 예: REPLACE('Hello, World!', 'World', 'Universe') = 'Hello, Universe!'
  • CONCAT(x, y, ...): 여러 문자열을 연결합니다. 예: CONCAT('Hello', ' ', 'World') = 'Hello World'

 3. 날짜 함수

날짜 및 시간 추출 함수는 날짜 및 시간 값에서 특정 요소를 추출하는 데 사용됩니다. 대표적인 날짜 및 시간 추출 함수로는 다음과 같은 것들이 있습니다.

  • YEAR(x): x의 연도를 반환합니다. 예: YEAR(SYSDATE) = 2024
  • MONTH(x): x의 월을 반환합니다. 예: MONTH(SYSDATE) = 5
  • DAY(x): x의 일자를 반환합니다. 예: DAY(SYSDATE) = 14
  • HOUR(x): x의 시간을 반환합니다. 예: HOUR(SYSDATE) = 8
  • MINUTE(x): x의 분을 반환합니다. 예: MINUTE(SYSDATE) = 49
  • SECOND(x): x의 초를 반환합니다. 예: SECOND(SYSDATE) = 12
  • ADD_MONTHS(x, n): x에 n개월을 더합니다. 예: ADD_MONTHS(SYSDATE, 1) = June 14, 2024
  • LAST_DAY(x): x가 속한 달의 마지막 날짜를 반환합니다. 예: LAST_DAY(SYSDATE) = May 31, 2024
  • NEXT_DAY(x, base_weekday): x의 다음 요일을 반환합니다. base_weekday는 SUNDAY, MONDAY, ..., SATURDAY 중 하나를 지정합니다. 예: NEXT_DAY(SYSDATE, 'MONDAY') = May 20, 2024
  • DAYS_BETWEEN(start_date, end_date): start_date와 end_date 사이의 일수를 반환합니다. 예: DAYS_BETWEEN('2023-01-01', '2024-01-01') = 366

4. 변환 함수

변환 함수는 데이터를 한 데이터 타입에서 다른 데이터 타입으로 변환하는 데 사용되는 함수입니다. 대표적인 변환 함수로는 다음과 같은 것들이 있습니다.

  • TO_NUMBER(x): 문자열을 숫자 값으로 변환합니다. 예: TO_NUMBER('123') = 123
  • TO_VARCHAR2(x): 숫자 값을 문자열 값으로 변환합니다. 예: TO_VARCHAR2(123) = '123'
  • TO_DATE(x, format): 문자열을 지정된 형식의 날짜 값으로 변환합니다. (이미 위에서 설명했습니다.)
  • TO_CHAR(x, format): 날짜 값을 지정된 형식의 문자열로 변환합니다. (이미 위에서 설명했습니다.)

5. 일반 함수

일반 함수는 특정한 작업을 수행하는 데 사용되는 함수입니다. 대표적인 일반 함수로는 다음과 같은 것들이 있습니다.

  • NVL(x, default): x가 NULL인 경우 지정된 기본값을 반환하고, NULL이 아닌 경우 x를 반환합니다. 예: NVL('Hello', 'World') = 'Hello'
  • NULLIF(x, y): x와 y가 같은 경우 NULL을 반환하고, 그렇지 않은 경우 x를 반환합니다. 예: NULLIF(123, 456) = 123
  • DECODE(x, value1, result1, ..., valueN, resultN): x가 value1, value2, ..., valueN 중 하나와 일치하는 경우 result1, result2, ..., resultN 중 해당 값을 반환하고, 일치하지 않는 경우 NULL을 반환합니다. 예: DECODE('A', 'A', 'Apple', 'B', 'Banana', 'C', 'Cherry') = 'Apple'

☞ 단일행 함수 사용법

단일행 함수는 일반적으로 SELECT 문장에서 사용됩니다.

예를 들어, 고객 테이블에서 각 고객의 이름과 주소를 출력하는 다음과 같은 쿼리를 살펴보겠습니다.

SQL
SELECT customer_name, SUBSTR(customer_address, 1, 30) AS address
FROM customers;
 

위 쿼리에서는 SUBSTR 단일행 함수를 사용하여 customer_address 열의 처음 30자만 출력합니다.

또한, 단일행 함수는 다른 단일행 함수와 함께 사용하거나, 조건절에서 사용할 수도 있습니다.

 

  단일행 함수 활용

단일행 함수는 데이터 분석, 데이터 변환, 데이터 조작 등 다양한 목적으로 활용될 수 있습니다.

예를 들어, 다음과 같은 작업을 수행하는 데 단일행 함수를 사용할 수 있습니다.

  • 특정 조건을 충족하는 행만 선택합니다.
  • 데이터를 그룹화하고 요약합니다.
  • 데이터를 다른 형식으로 변환합니다.
  • 계산을 수행합니다.

관련글 더보기

댓글 영역