条件语句&CASE表达式语法
Posted rxhuiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了条件语句&CASE表达式语法相关的知识,希望对你有一定的参考价值。
一 条件语句
1. 语法:
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
END IF;
-----------------------
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSE
其它语句
END IF;
-----------------------
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSIF < 其它布尔表达式> THEN
其它语句
ELSIF < 其它布尔表达式> THEN
其它语句
ELSE
其它语句
END IF;
提示: ELSIF 不能写成 ELSEIF
2. 例子:
DECLARE
v_empno employees.employee_id%TYPE :=&empno;
V_salary employees.salary%TYPE;
V_comment VARCHAR2(35);
BEGIN
SELECT salary INTO v_salary FROM employees
WHERE employee_id = v_empno;
IF v_salary < 1500 THEN
V_comment:= ‘太少了,加点吧~!‘;
ELSIF v_salary <3000 THEN
V_comment:= ‘多了点,少点吧~!‘;
ELSE
V_comment:= ‘没有薪水~!‘;
END IF;
DBMS_OUTPUT.PUT_LINE(V_comment);
exception
when no_data_found then
DBMS_OUTPUT.PUT_LINE(‘没有数据~!‘);
when others then
DBMS_OUTPUT.PUT_LINE(sqlcode || ‘---‘ || sqlerrm);
END;
DECLARE
v_first_name VARCHAR2(20);
v_salary NUMBER(7,2);
BEGIN
SELECT first_name, salary INTO v_first_name, v_salary FROM employees
WHERE employee_id = &emp_id;
DBMS_OUTPUT.PUT_LINE(v_first_name||‘雇员的工资是‘||v_salary);
IF v_salary < 10000 THEN
DBMS_OUTPUT.PUT_LINE(‘工资低于10000‘);
ELSE
IF 10000 <= v_salary AND v_salary < 20000 THEN
DBMS_OUTPUT.PUT_LINE(‘工资在10000到20000之间‘);
ELSE
DBMS_OUTPUT.PUT_LINE(‘工资高于20000‘);
END IF;
END IF;
END;
DECLARE
v_first_name VARCHAR2(20);
v_hire_date DATE;
v_bonus NUMBER(6,2);
BEGIN
SELECT first_name, hire_date INTO v_first_name, v_hire_date FROM employees
WHERE employee_id = &emp_id;
IF v_hire_date > TO_DATE(‘01-1月-90‘) THEN
v_bonus := 800;
ELSIF v_hire_date > TO_DATE(‘01-1月-88‘) THEN
v_bonus := 1600;
ELSE
v_bonus := 2400;
END IF;
DBMS_OUTPUT.PUT_LINE(v_first_name||‘雇员的雇佣日期是‘||v_hire_date
||‘、奖金是‘||v_bonus);
END;
以上是关于条件语句&CASE表达式语法的主要内容,如果未能解决你的问题,请参考以下文章