Oracle基本流程语句
====1、IF语句==========
declare
a number:=1;
begin
if a<1 then
dbms_output.put_line('a<1');
elsif a=1 then
dbms_output.put_line('a=1');
else
dbms_output.put_line('a=1');
end if;
end;
/
====2、Case语句==========
declare
sex number:=1;
begin
case sex
when 1 then
dbms_output.put_line('男');
when 2 then
dbms_output.put_line('女');
else
dbms_output.put_line('其它');
end;
end;
/
select stuName,
(case
when stuAge = 0 then '男'
when stuAge = 1 then '女'
else '其它性别'
end)
from stu2;
/
SELECT COUNT(CASE
WHEN stuAge = 0 THEN 1 /*sex 1为男生,2位女生*/
ELSE NULL END) 男生数,
COUNT(CASE
WHEN stuAge = 1 THEN 1
ELSE NULL END) 女生数
FROM stu2;
/
====3、Loop循环语句==========
LOOP
......
EXIT [WHEN condition];
END LOOP;
--例子:
declare
a number:=0;
begin
loop
a:=a+1;
dbms_output.put_line(a);
exit when a=10;
end loop;
end;
/
====4、While循环语句==========
WHILE condition LOOP
.....
END LOOP;
--例子:
declare
a number := 0;
begin
while a < 10 Loop
dbms_output.put_line(a);
a:=a+1;
end loop;
end;
/
====5.FOR循环语句==========
当使用基本循环或WHILE循环时,需要定义循环控制变量,并且循环控制变量不仅可以使用NUMBER类型,
也可以使用其他数据类型。当使用FOR循环时,ORACLE会隐含定义循环控制变量。
FOR counter in [REVERSE] lower_bound. .upper_bound LOOP
.......
END LOOP;
counter是循环控制变量,并且该变量由oracle隐含定义,不需要显式定义。lower_bound和upper_bound分别对应于
循环控制变量的下界值和上界值,默认情况下,当使用FOR循环时,每次循环时循环控制变量会自动增1.
如果指定REVERSE选项,那么每次循环时循环控制变量会自动减1。示例:
begin
for a in reverse 1 .. 10 loop
dbms_output.put_line(a);
end loop;
end;
/
====6.嵌套语句==========
====6.嵌套语句==========
嵌套循环是指在一个循环语句之中嵌入另一个循环语句,而标号(label)则用于
标记嵌套块或嵌套循环,通过在嵌套循环中使用标号,可以区分内层循环和外层循环,
并且可以在内层循环中直接退出外层循环,在编写时可以用<<label_name>>定义标号。示例:
declare
result int;
begin
<<outer>>
for i in 1 .. 10 loop
<<inter>>
for j in 1 .. 10 loop
result := i + j;
exit outer when result > 50;
exit when result = 5;
end loop inter;
dbms_output.put_line(result);
end loop outer;
dbms_output.put_line(result);
end;
/
Oracle基本流程语句的更多相关文章
- Oracle和SQL语句的优化策略(基础篇)
转载自: http://blog.csdn.net/houpengfei111/article/details/9245337 http://blog.csdn.net/uniqed/article/ ...
- Oracle的update语句优化研究
最近研究sql优化,以下文章转自互联网: 1. 语法 单表:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 如:update t_join_situation s ...
- Oracle动态执行语句
一.为什么要使用动态执行语句? 由于在PL/SQL 块或者存储过程中只支持DML语句及控制流语句,并不支持DDL语句,所以Oracle动态执行语句便应允而生了.关于DDL与DML的区别,请参见:D ...
- 第七课第一节,T语言流程语句( 版本5.0)
流程语句 if语句 用if语句可以构成分支结构.它根据给定的条件进行判断,以决定执行某个分支程序段.TC综合开发工具的if语句有三种基本形式,并且每个语句的结尾都要有一个end (注:关键字,if,e ...
- 【转】Oracle 执行动态语句
1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一 ...
- Oracle分页查询语句的写法(转)
Oracle分页查询语句的写法(转) 分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. Oracle分页查询语句使我们最常用的 ...
- oracle常用SQL语句(汇总版)
Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...
- Python学习笔记总结(一)对象和流程语句总结
一.对象类型 1.数字 数字:不可变 2.字符串 字符串:不可原处修改[修改需要创建新的对象],有顺序,支持求长(len),合并(+),重复(*),索引S[0],分片(S[1:3]],成员测试(in) ...
- oracle之sql语句优化
oracle之sql语句优化 sql语句的优化 1.在where子句中使用 is null 或 is not null 时,oracle优化器就不能使用索引了. 2.对于有连接的列,即使最有一个是静态 ...
随机推荐
- asp.net web api帮助文档的说明
为asp.net的mvc web api填写自己的帮助文档 1. 加入Help的area(能够通过命令行或其它方式加入) 命令行:Install-Package Microsoft.AspNet.We ...
- ListView+CheckBox两种解决方式及原因分析
近期在用ListView+CheckBox搞一个item选中的项目,我将CheckBox的focus设置为false,另我大喜的是,CheckBox居然能够选中(窃喜中),这么简单就搞定了,由于数据量 ...
- Java总结之容器
[容器的概念] 容器:Java API所提供的一系列的实例,用于在程序中存放对象. [容器 API] J2SDK所提供的容器API位于java.util包内. {Collection[Set(Hash ...
- centos6安装bt工具transmission
centos6 install transmission 1. 安装所需的组件: yum -y install gcc gcc-c++ m4 make automake libtool gettex ...
- Xtrabackup使用指南 | 简单.生活
Xtrabackup使用指南 | 简单.生活 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好 ...
- [置顶] 小伙伴们来自己实现LinkedList
继前面实现ArrayList后,今天和小伙伴一起实现LinkedList,LinkedList实现我们采用双向链表来实现,在每次查找时候,如果该查找元素位于该链表的前半段,则从开始检索,如果位于链表的 ...
- hdu 1665 That Nice Euler Circuit(欧拉定理)
输入n个点,然后从第一个点开始,依次链接点i->点i+1,最后回到第一点(输入中的点n),求得到的图形将平面分成了多少部分. 根据欧拉定理 v_num + f_num - e_num = 2可知 ...
- QT操作Excel(通过QAxObject使用了OLE,前提是本地安装了Excel)
新建QT GUI项目,在选择选项中勾选ActiveQT Container. #include <qaxobject.h> QAxObject *obj = new QAxObject(& ...
- Dnasp计算LD
Dnasp计算LD Table of Contents 1 Dnasp 计算LD 1 Dnasp 计算LD Dnasp有很多的功能,现在主要来记录其计算LD的功能. 首先File——然后打开data— ...
- Github干货系列:C++资源集合-
Awesome CPP,这又是一个 Awesome XXX 系列的资源整理,由 fffaraz 发起和维护.内容包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. ...