단일 행 함수 사용
단일 행 함수를 사용하여 출력 사용자 지정
Oracle SQL은 다양한 작업에 사용할 수있는 내장 함수의 풍부한 라이브러리를 제공합니다. 함수의 필수 기능은 문자열의 대소 문자 변환, 문자열 내 또는 하위 문자열 연산, 숫자 데이터에 대한 수학적 계산, 날짜 유형 값에 대한 날짜 연산이 될 수 있습니다. SQL 함수는 선택적으로 사용자로부터 인수를 취하고 필수로 값을 반환합니다.
더 넓은 범주에는 두 가지 유형의 기능이 있습니다.
Single Row functions-단일 행 함수는 단일 행에서 작업하고 행당 하나의 출력을 반환하는 기능입니다. 예를 들어, 길이 및 대소 문자 변환 함수는 단일 행 함수입니다.
Multiple Row functions -여러 행 함수는 행 그룹에 대해 작동하고 전체 행 집합에 대해 하나의 결과를 반환합니다. 그룹 기능이라고도합니다.
단일 행 기능
단일 행 함수는 문자 함수, 숫자 함수, 날짜 함수 및 변환 함수일 수 있습니다. 이러한 함수는 데이터 항목을 조작하는 데 사용됩니다. 이러한 함수는 하나 이상의 입력 인수가 필요하며 각 행에서 작동하므로 각 행에 대해 하나의 출력 값을 반환합니다. 인수는 열, 리터럴 또는 표현식이 될 수 있습니다. SELECT 문, WHERE 및 ORDER BY 절에서 단일 행 함수를 사용할 수 있습니다. 단일 행 함수는 다음과 같습니다.
General functions-일반적으로 NULL 처리 기능을 포함합니다. 카테고리의 기능은 NVL, NVL2, NULLIF, COALESCE, CASE, DECODE입니다.
Case Conversion functions-문자 입력을 받아 문자 값을 반환합니다. 카테고리의 기능은 UPPER, LOWER 및 INITCAP입니다.
UPPER 함수는 문자열을 대문자로 변환합니다.
LOWER 함수는 문자열을 소문자로 변환합니다.
INITCAP 함수는 문자열의 초기 알파벳 만 대문자로 변환합니다.
Character functions-문자 입력을 수락하고 숫자 또는 문자 값을 반환합니다. 범주에 속하는 함수는 CONCAT, LENGTH, SUBSTR, INSTR, LPAD, RPAD, TRIM 및 REPLACE입니다.
CONCAT 함수는 두 개의 문자열 값을 연결합니다.
LENGTH 함수는 입력 문자열의 길이를 반환합니다.
SUBSTR 함수는 주어진 시작점에서 끝점까지 문자열의 일부를 반환합니다.
INSTR 함수는 주어진 문자열에서 문자 또는 문자열의 숫자 위치를 리턴합니다.
LPAD 및 RPAD 함수는 주어진 문자열을 주어진 문자로 특정 길이까지 채 웁니다.
TRIM 함수는 시작 또는 끝에서 문자열 입력을 트리밍합니다.
REPLACE 함수는 입력 문자열의 문자를 주어진 문자로 바꿉니다.
Date functions-날짜 산술 연산은 날짜 또는 숫자 값을 반환합니다. 카테고리 아래의 함수는 MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND 및 TRUNC입니다.
MONTHS_BETWEEN 함수는 두 날짜 사이의 개월 수를 반환합니다.
ADD_MONTHS 함수는 입력 날짜에 'n'개월 수를 추가합니다.
NEXT_DAY 함수는 지정된 날짜의 다음 날을 반환합니다.
LAST_DAY 함수는 입력 날짜의 마지막 날을 반환합니다.
ROUND 및 TRUNC 함수는 날짜 값을 반올림하고 자르는 데 사용됩니다.
Number functions-숫자 입력을 받아들이고 숫자 값을 반환합니다. 카테고리의 함수는 ROUND, TRUNC 및 MOD입니다.
ROUND 및 TRUNC 함수는 숫자 값을 반올림하고 자르는 데 사용됩니다.
MOD는 두 숫자 사이의 나머지 나누기 연산을 반환하는 데 사용됩니다.
삽화
일반 기능
아래 SELECT 쿼리는 NVL 함수 사용을 보여줍니다.
SELECT first_name, last_name, salary, NVL (commission_pct,0)
FROM employees
WHERE rownum < 5;
FIRST_NAME LAST_NAME SALARY NVL(COMMISSION_PCT,0)
-------------------- ------------------------- ---------- ---------------------
Steven King 24000 0
Neena Kochhar 17000 0
Lex De Haan 17000 0
Alexander Hunold 9000 0
케이스 변환 기능
아래 SELECT 쿼리는 대소 문자 변환 함수의 사용을 보여줍니다.
SELECT UPPER (first_name), INITCAP (last_name), LOWER (job_id)
FROM employees
WHERE rownum < 5;
UPPER(FIRST_NAME) INITCAP(LAST_NAME) LOWER(JOB_
-------------------- ------------------------- ----------
STEVEN King ad_pres
NEENA Kochhar ad_vp
LEX De Haan ad_vp
ALEXANDER Hunold it_prog
캐릭터 기능
아래 SELECT 쿼리는 CONCAT 함수를 사용하여 두 문자열 값을 연결하는 방법을 보여줍니다.
SELECT CONCAT (first_name, last_name)
FROM employees
WHERE rownum < 5;
CONCAT(FIRST_NAME,LAST_NAME)
--------------------------------
EllenAbel
SundarAnde
MozheAtkinson
DavidAustin
아래 SELECT 쿼리는 SUBSTR 및 INSTR 함수의 사용을 보여줍니다. SUBSTR 함수는 첫 번째 위치에서 다섯 번째 위치까지 입력 문자열의 일부를 반환합니다. INSTR 함수는 이름에서 문자 'a'의 숫자 위치를 리턴합니다.
SELECT SUBSTR (first_name,1,5), INSTR (first_name,'a')
FROM employees
WHERE rownum < 5;
SUBST INSTR(FIRST_NAME,'A')
----- ---------------------
Ellen 0
Sunda 5
Mozhe 0
David 2
아래 SELECT 쿼리는 LPAD 및 RPAD를 사용하여 직원 및 작업 정보를 예쁘게 인쇄하는 방법을 보여줍니다.
SELECT RPAD(first_name,10,'_')||LPAD (job_id,15,'_')
FROM employees
WHERE rownum < 5;
RPAD(FIRST_NAME,10,'_')||
-------------------------
Steven____________AD_PRES
Neena_______________AD_VP
Lex_________________AD_VP
Alexander_________IT_PROG
숫자 함수
아래 SELECT 쿼리는 ROUND 및 TRUNC 함수의 사용을 보여줍니다.
SELECT ROUND (1372.472,1)
FROM dual;
ROUND(1372.472,1)
-----------------
1372.5
SELECT TRUNC (72183,-2)
FROM dual;
TRUNC(72183,-2)
---------------
72100
날짜 산술 연산
아래 SELECT 쿼리는 직원 고용 날짜와 sysdate의 차이가 수행되는 날짜 산술 함수를 보여줍니다.
SELECT employee_id, (sysdate - hire_date) Employment_days
FROM employees
WHERE rownum < 5;
EMPLOYEE_ID EMPLOYMENT_DAYS
----------- ---------------
100 3698.61877
101 2871.61877
102 4583.61877
103 2767.61877
날짜 기능
아래 SELECT 쿼리는 MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY 및 LAST_DAY 함수의 사용을 보여줍니다.
SELECT employee_id, MONTHS_BETWEEN (sysdate, hire_date) Employment_months
FROM employees
WHERE rownum < 5;
EMPLOYEE_ID EMPLOYMENT_MONTHS
----------- -----------------
100 121.504216
101 94.3751837
102 150.633248
103 90.9558289
SELECT ADD_MONTHS (sysdate, 5), NEXT_DAY (sysdate), LAST_DAY (sysdate)
FROM dual;
ADD_MONTH NEXT_DAY( LAST_DAY(
--------- --------- ---------
01-JAN-14 05-AUG-13 31-AUG-13