Oracle database(오라클 데이타베이스) 조건 및 제어 함수 목록
오라클 데이타베이스 조건 및 제어 함수는 SQL 및 PL/SQL에서 데이터 처리와 흐름 제어를 위해 사용됩니다.
1. 조건 함수 (CASE, DECODE)
- CASE 함수
CASE 문은 여러 개의 조건을 평가하여 특정 값을 반환합니다.
SELECT empno, ename, sal,
CASE
WHEN sal >= 5000 THEN 'High Salary'
WHEN sal >= 3000 THEN 'Medium Salary'
ELSE 'Low Salary'
END AS salary_category
FROM emp;
- DECODE 함수
DECODE는 간단한 조건 평가에 사용되며, CASE보다 간결하지만 기능이 제한적입니다.
SELECT empno, ename, sal,
DECODE(deptno, 10, 'Accounting', 20, 'Research', 30, 'Sales', 'Others') AS dept_name
FROM emp;
2. 제어 함수 (NVL, NVL2, COALESCE, NULLIF)
제어 함수는 주로 NULL 값을 처리하는 데 사용됩니다.
- NVL 함수
NVL 함수는 NULL 값을 대체하는 데 사용됩니다.
SELECT empno, ename, sal, NVL(comm, 0) AS commission
FROM emp;
(comm 값이 NULL이면 0을 반환)
- NVL2 함수
NVL2는 첫 번째 인수가 NULL인지 여부에 따라 다른 값을 반환합니다.
SELECT empno, ename, sal, NVL2(comm, 'Has Bonus', 'No Bonus') AS bonus_status
FROM emp;
- COALESCE 함수
COALESCE는 여러 개의 값을 평가하여 첫 번째 NULL이 아닌 값을 반환합니다.
SELECT empno, ename, COALESCE(comm, bonus, 0) AS final_bonus
FROM emp;
(순서대로 NULL이 아닌 값을 반환)
- NULLIF 함수
두 개의 값이 같으면 NULL을 반환하고, 다르면 첫 번째 값을 반환합니다.
SELECT empno, sal, NULLIF(sal, 5000) AS adjusted_salary
FROM emp;
(sal이 5000이면 NULL을 반환)
3. 제어 구조 (IF, LOOP, FOR, WHILE)
PL/SQL에서 흐름을 제어하는 구조는 여러 가지가 있습니다.
- IF THEN ELSE
DECLARE
v_salary NUMBER := 4000;
BEGIN
IF v_salary > 5000 THEN
DBMS_OUTPUT.PUT_LINE('High Salary');
ELSIF v_salary > 3000 THEN
DBMS_OUTPUT.PUT_LINE('Medium Salary');
ELSE
DBMS_OUTPUT.PUT_LINE('Low Salary');
END IF;
END;
/
- LOOP 문
1) 기본 LOOP
DECLARE
v_counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('Counter: ' || v_counter);
v_counter := v_counter + 1;
EXIT WHEN v_counter > 5;
END LOOP;
END;
/
2) WHILE LOOP
DECLARE
v_counter NUMBER := 1;
BEGIN
WHILE v_counter <= 5 LOOP
DBMS_OUTPUT.PUT_LINE('Counter: ' || v_counter);
v_counter := v_counter + 1;
END LOOP;
END;
/
3) FOR LOOP
BEGIN
FOR i IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE('Iteration: ' || i);
END LOOP;
END;
/
오늘은 오라클 데이타베이스의 조건 및 제어 함수였습니다.
반응형
'IT' 카테고리의 다른 글
닌텐도 스위치2, 무엇이 달라졌을까? (0) | 2025.04.05 |
---|---|
IT 성공적인 프로젝트를 위한 컨버전과 마이그레이션 (0) | 2025.03.03 |
IT Oracle database 함수(4), 그룹 함수 (0) | 2025.02.27 |
IT Oracle database 함수(3), 날짜 함수 (0) | 2025.02.26 |
IT Oracle database 함수(2), 숫자 함수 (0) | 2025.02.25 |