(2) 创建存储过程 GetGrade,查询指定员工的工资,使用 CASE 语句输出其工资等级。 工资小于等于 3000,等级为“低”;工资大于 3000,小于 5000,等级为”中”;工资大 于等于 5000,等级为高。并执行该存储过程。
时间: 2023-11-22 19:54:27 浏览: 171
以下是创建存储过程 GetGrade 的 SQL 代码:
```
CREATE PROCEDURE GetGrade
@employee_id INT
AS
BEGIN
DECLARE @salary MONEY
SELECT @salary = salary
FROM employees
WHERE employee_id = @employee_id
SELECT
CASE
WHEN @salary <= 3000 THEN '低'
WHEN @salary > 3000 AND @salary < 5000 THEN '中'
ELSE '高'
END AS grade
END
```
执行该存储过程的 SQL 代码:
```
EXEC GetGrade @employee_id = 1001
```
其中,@employee_id 参数为要查询工资等级的员工的 ID。执行该存储过程后,将输出该员工的工资等级。
相关问题
plsql 创建存储过程 GetGrade,查询指定员工的工资,使用 CASE 语句输出其工资等级。 工资小于等于 3000,等级为“低”;工资大于 3000,小于 5000,等级为”中”;工资大 于等于 5000,等级为高。并执行该存储过程。
以下是使用 PL/SQL 创建存储过程 GetGrade,并查询指定员工的工资等级的示例代码:
```
CREATE OR REPLACE PROCEDURE GetGrade (emp_id IN NUMBER) AS
salary NUMBER;
grade VARCHAR2(10);
BEGIN
SELECT salary INTO salary FROM employees WHERE employee_id = emp_id;
CASE
WHEN salary <= 3000 THEN
grade := '低';
WHEN salary > 3000 AND salary < 5000 THEN
grade := '中';
WHEN salary >= 5000 THEN
grade := '高';
END CASE;
DBMS_OUTPUT.PUT_LINE('员工 ' || emp_id || ' 的工资等级为 ' || grade);
END;
/
```
在执行该存储过程时,需要传入参数 emp_id,指定要查询的员工的 ID。例如,查询员工 ID 100 的工资等级,可以使用以下语句:
```
EXECUTE GetGrade(100);
```
该语句将会输出:员工 100 的工资等级为 中。
编写程序:创建存储过程GetGrade,查询指定员工的工资,使用CASE语句输出其工资等级。工资小于等于3000,等级为“低”;工资大于3000,小于5000,等级为”中”;工资大于等于5000,等级为高。并执行该存储过程。
好的,以下是您需要的 SQL 编写程序:
```
CREATE OR REPLACE PROCEDURE GetGrade (
emp_id IN employees.employee_id%TYPE
)
IS
emp_salary employees.salary%TYPE;
emp_grade VARCHAR2(10);
BEGIN
SELECT salary INTO emp_salary
FROM employees
WHERE employee_id = emp_id;
CASE
WHEN emp_salary <= 3000 THEN emp_grade := '低';
WHEN emp_salary > 3000 AND emp_salary < 5000 THEN emp_grade := '中';
ELSE emp_grade := '高';
END CASE;
DBMS_OUTPUT.PUT_LINE('员工工资为:' || emp_salary || ',工资等级为:' || emp_grade);
END;
```
解释一下程序的步骤:
1. 创建一个名为 GetGrade 的存储过程,该存储过程接受一个参数 emp_id,用于指定要查询的员工。
2. 在存储过程中,声明两个变量 emp_salary 和 emp_grade,用于存储员工的工资和工资等级。
3. 使用 SELECT 语句从 employees 表中查询指定员工的工资,并将结果存储在 emp_salary 变量中。
4. 使用 CASE 语句根据员工的工资计算其工资等级,并将结果存储在 emp_grade 变量中。
5. 使用 DBMS_OUTPUT.PUT_LINE 语句输出员工的工资和工资等级。
6. 执行该存储过程,传入要查询的员工的 ID 即可。
注意:在执行存储过程前,需要先在 SQL Developer 中开启输出窗口,否则无法看到程序输出结果。可以通过菜单栏的 View > Dbms Output 或者按快捷键 Alt + F5 来打开输出窗口。
阅读全文