SQL强化(二) 在Oracle 中写代码
一 : 关于查询中的转换
-- 字符串转换 一 : decode 函数 转换
SELECT
DECODE (
PROTYPE.PRO_TYPE_DATE,
'L',
'长',
'm',
'短',
'默认值'
)
FROM
PROTYPE
-- 字符串转换 二 : case 转换
SELECT
T1.PRO_TYPE_ID,
T1.PRO_TYPE_NAME,
CASE T1.PRO_TYPE_DATE
WHEN 'S' THEN
'短'
WHEN 'L' THEN
'长'
ELSE
'默认值'
END AS text
FROM
PROTYPE t1

case when then 有点类似于java中的switch case
二 : 在Oracle 中写代码
1 ,什么是代码块
2 ,变量定义 declare
3 , 代码块开始 begin
4, 代码块结束 end
5 , 赋值 := / 通过表字段给变量赋值 into
declare 声明的意思 定义变量用的
begin 代表代码块开始
end 代表代码块结束
:= 给变量赋值
dbms_output.put_line('打印并换行')
dbms_output.put('打印不换行')
定义变量 a = 10 ,b = 10 并分别打印a和b
DECLARE A NUMBER (10) := 10 ; b NUMBER (10) ;
BEGIN
b := 100 ; dbms_output.put_line (A) ; dbms_output.put_line (b) ;
END ;
结果 :

if 条件 then 执行; end if;
DECLARE A NUMBER (10) := 10 ; b NUMBER (10) ;
BEGIN
b := 100 ;
IF b = 100 THEN
b := 13 ;
END
IF ; dbms_output.put_line (A) ; dbms_output.put_line (b) ;
END ;
输出结果 :

if 条件 then 执行; elsif 条件 then 执行; else 执行; end if;
DECLARE A NUMBER (10) := 10 ; b NUMBER (10) ;
BEGIN
b := 99 ;
IF b = 100 THEN
b := 13 ;
ELSIF b = 99 THEN
b := 16 ;
ELSE
b := 17 ;
END
IF ; dbms_output.put_line (A) ; dbms_output.put_line (b) ;
END ;
输出结果为 16

loop 循环 <<oneloop>> 定义循环名称,循环嵌套时必须要定义,单个loop循环可以不需要 exit 循环名(没有可以不写) when 跳出循环的条件
|| 字符串拼接 ,相当于Java中的+
DECLARE A NUMBER (10) := 10 ;
BEGIN
<< oneloop >> loop dbms_output.put_line ('打印' || 'a=' || A) ; A := A - 1 ; exit oneloop
WHEN A <= 0 ;
END loop ;
END ;
输出结果 :

SQL强化(二) 在Oracle 中写代码的更多相关文章
- FLASH CC 2015 CANVAS (二)html中写JS调用flash中的元件、函数、变量
注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 当你导出第一个canvas后,你会在保存fla的文件夹里 (每个项目默认位置)看到 如下文件,(请先 ...
- 判断一个数据是否存在于一个表中,Oracle中写自定义函数
create or replace function isExist(data in DataTypes) --DataTypes 为表中该数据的类型return Numberisv_flag num ...
- 同一个sql在不同的oracle中执行时间不一样
最近因为某些原因不得不重新配置服务器的环境,当然就是一些简单的程序运行环境,包括tomcat .oracle和其他的一些.原本觉得还蛮简单的东西,但是当我部署完成后在运行程序的过程中发现了一些隐性因数 ...
- 在myeclipse10.7.1中写代码有很多红x
代码没问题,但是很多代码前都有红x.在doc中执行都没有问题 jdk版本不对应 //第一步:菜单栏Window--Preferences--Java--Installed JREs--右边Add ...
- Winform 中写代码布局中遇到的控件遮盖问题
在winform中编程时,需要动态向主窗体中增加菜单栏和用户控件,菜单栏需要设置DockStyle为Top ,而设置用户控件的DockStyle为Fill,之后在加载的时候,出现了菜单栏遮盖用户控件的 ...
- ORACLE 中rownum和row_number()的使用区别(可指定取sql结果集的第几个数据)
这篇文章主要介绍了oracle中rownum和row_number()的使用方法以及区别和联系,十分的详细,有需要的小伙伴可以参考下. row_number()over(partition by ...
- Oracle中的DDL,DML,DCL总结
转自http://blog.csdn.net/w183705952/article/details/7354974 DML(Data Manipulation Language,数据操作语言):用于检 ...
- oracle中rownum和row_number()
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内 ...
- Oracle中的数据字典技术及常用数据字典总结
一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行 ...
随机推荐
- bzoj 3143: [Hnoi2013]游走
Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...
- Linux发行版 CentOS6.5 修改默认主机名
修改前准备 我们将主机名修改为comexchan.cnblogs.com(本文发布于http://comexchan.cnblogs.com/) 备份相关配置文件,以便回滚 cp /etc/sysco ...
- 关于模拟登陆微博(PC)
微博模拟登陆 1.基类对象的方法建立一个类__init__初始化方法,接收username和password. class launcher(): def __init__(self, usernam ...
- [编织消息框架][JAVA核心技术]cglib动态代理
先在mavne项目里添加cglib库 maven仓库搜索cglib版本 maven地址:http://mvnrepository.com/ 点击最新的版本 3.2.5 复制到pom.xml depe ...
- js获取样式、currentStyle和getComputedStyle的兼容写法
currentStyle获取计算后的样式,也叫当前样式.最终样式.优点:可以获取元素的最终样式,包括浏览器的默认值,而不像style只能获取行间样式,所以更常用到.注意:不能获取复合样式如backgr ...
- 消息队列一:为什么需要消息队列(MQ)?
为什么会需要消息队列(MQ)? #################################################################################### ...
- Protobuf的简单介绍、使用和分析
Protobuf的简单介绍.使用和分析 一.protobuf是什么? protobuf(Google Protocol Buffers)是Google提供一个具有高效的协议数据交换格式工具库( ...
- Java常用命令与参数设置
我介绍的JDK版本: 首先.介绍下JDK常用参数设置,如下是我个人环境的参数: -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m 我们 ...
- 自动化测试-Selenium家谱介绍
一.自动化测试定义 自动化测试是通工具录制或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证. 二.什么样的项目适合做自动化测试 1.需求明确,不会 ...
- js 判断值为Array or Object的方法
①obj instanceof Array / Object ②Array.prototype.isPrototypeOf(obj) ③Object.prototype.toString.call(o ...