DB2 9.5 SQL Procedure Developer认证考试 735 准备,第1部分
2010-02-16 14:59:34 来源:WEB开发网CASE语句
SQL PL 支持两种类型的CASE语句,以根据一个条件的状态实现逻辑的分支:
simple CASE语句用于根据一个字面值进入某个逻辑。
searched CASE语句用于根据一个表达式的值进入某个逻辑。
清单 12 显示了使用 searched CASE语句的一个存储过程的例子。
清单 12. 使用 searched CASE语句的存储过程
CREATE PROCEDURE sal_increase_lim1 (empid CHAR(6))
BEGIN
DECLARE years_of_serv INT DEFAULT 0;
DECLARE v_incr_rate DEC(9,2) DEFAULT 0.0;
SELECT YEAR(CURRENT DATE) - YEAR(hiredate)
INTO years_of_serv
FROM empl1
WHERE empno = empid;
CASE
WHEN years_of_serv > 30 THEN
SET v_incr_rate = 0.08;
WHEN years_of_serv > 20 THEN
SET v_incr_rate = 0.07;
WHEN years_of_serv > 10 THEN
SET v_incr_rate = 0.05;
ELSE
SET v_incr_rate = 0.04;
END CASE;
UPDATE empl1
SET salary = salary+salary*v_incr_rate
WHERE empno = empid;
END
迭代语句
SQL PL 支持一些重复执行某个逻辑的方法,包括简单的LOOP、WHILE循环、REPEAT循环和 FOR循环:
LOOP循环 -- 简单的循环
L1: LOOP
SQL statements;
LEAVE L1;
END LOOP L1;
WHILE循环 -- 进入前检查条件
WHILE condition
DO
SQL statements
END WHILE;
REPEAT循环 -- 退出前检查条件
REPEAT
SQL statements;
UNTIL condition
END REPEAT;
FOR循环 -- 结果集上的隐式循环
FOR loop_name AS
SELECT … FROM
DO
SQL statements;
END FOR;
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接