4、编写PL/SQL程序,查询1号员工的工资,使用CASE语句输出其工资等级。工资小于等于3000,等级为“低”;工资大于3000,小于5000,等级为”中”;工资大于等于5000,等级为高;
时间: 2024-10-06 16:01:31 浏览: 32
oracle面试大全
在PL/SQL中,你可以使用`CASE`语句结合`SELECT`来实现这样的需求。下面是一个示例程序:
```sql
DECLARE
v_employee_id NUMBER := 1;
v_salary NUMBER; -- 假设这是从某个表中查询到的员工工资
BEGIN
SELECT salary
INTO v_salary
FROM employees
WHERE employee_id = v_employee_id;
-- 使用CASE语句确定工资等级
DECLARE
v_salary_grade VARCHAR2(10);
BEGIN
CASE v_salary
WHEN 0 THEN v_salary_grade := '未提供'; -- 处理数据可能的缺失值
WHEN 3000 OR v_salary <= 3000 THEN v_salary_grade := '低';
WHEN 5000 THEN v_salary_grade := '中';
ELSE v_salary_grade := '高';
END CASE;
DBMS_OUTPUT.PUT_LINE('员工ID ' || v_employee_id || ' 的工资等级为: ' || v_salary_grade);
END;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('员工ID ' || v_employee_id || ' 的记录不存在');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('错误:' || SQLERRM);
END;
/
```
这段代码首先查询指定员工的工资,然后根据`CASE`语句判断工资等级,并将结果显示出来。
阅读全文