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存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行 ...
随机推荐
- OpenGL ES学习001---绘制三角形
PS:OpenGL ES是什么? OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL三维图形 API 的子集,针对手机.PDA和游戏主机等嵌入式设备而设计 ...
- 云计算---openstack镜像制作详解
一:本地部署KVM 1.安装KVM 1.1安装须知 查看CPU是否支持kvm完全虚拟机. [root@LINUX ~]# grep "flags" /proc/cpuinfofla ...
- [编织消息框架][JAVA核心技术]动态代理应用3
我们先使用懒处理实现提取接口类上的元信息: public abstract class QRpcFactory { public static <T> T loadProxy(Class& ...
- 快速搭建vsftp 服务器并配置指定目录
1 搭建vsftp 服务器 前期准备: 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vs ...
- PHP动态图像处理
相关代码见:https://www.github.com/lozybean/learn_www/ 目录 1. 画布管理: imagecreate():创建一个基于调色板的画布,指定画布的长.宽 ...
- NPOI 1.2 教程
NPOI 1.2 教程官方地址 很多人可能对NPOI还很陌生,别担心,通过本教程你将对NPOI有进一步的认识和理解. 目录 1. 认识NPOI 2. 使用NPOI生成xls文件 2.1 创建基本内容 ...
- git强制push
Git 如何强制push? $ git push -u origin master –f 文章来源:刘俊涛的博客 地址:http://www.cnblogs.com/lovebing 欢迎关注,有 ...
- Java学习笔记-嵌套类
嵌套类 嵌套类有两种类别:static and non-static,分别对应为静态嵌套类和内部类. class OuterClass { ... static class StaticNestedC ...
- vue2.0 微信oauth认证的正确调用位置
运行在微信端的项目,很重要的环节是oauth认证:那在vue项目中,在何时何地调用oauth认证最合适呢? 经过观察,在项目启动过程中,会执行main.js文件:所以我将认证放在main.js中操作: ...
- Protobuf使用(一)
Protobuf使用(一) 前言: 最近由于接手一个支付的项目,他们那边的网络请求和数据解析都与我平常接触的项目不同,数据请求由于保密暂时不能说,但是数据解析用的是Protobuf,于是我就顺 ...