PL/SQL与SQL(Oracle)Case语句
(使用scott账户下的表)
1.Oracle SQL语句的case语句写法:
--sql中的case用于分支判断并返回某个值。
select empno , ename, deptno ,
case deptno
when 10 then '总经办'
when 20 then '综管部'
when 30 then '市场部'
else '其他'
end
from emp;
select empno , ename, deptno ,
case
when deptno=10 then '总经办'
when deptno=20 then '综管部'
when deptno=30 then '市场部'
else '其他'
end
from emp;
2.PL/SQL语句的case语句写法:
plsql中语法1:
case 字段|变量
when 比对值 then 执行语句...;
[when 比对值 then 执行语句...;]
[else 执行语句... ;]
plsql中语法2:
case
when 表达式 then 执行语句...;
[when 表达式 then 执行语句...;]
[else 执行语句... ;]
end case;
PLSQL中的case可用于分支判断并<返回>,也可以用于分支判断<执行>
用case判断,并把返回值赋给某变量
declare
v_dname varchar(20);
v_deptno int:=10;
begin
v_dname :=
case v_deptno
when 10 then '总经办' --返回值不要分号
when 20 then '综管部'
when 30 then '市场部'
else '其他'
end; --case结束时只用end
dbms_output.put_line(v_dname);
end;
declare
v_dname varchar(20);
v_deptno int:=10;
begin
v_dname :=
case
when v_deptno=10 then '总经办'
when v_deptno=20 then '综管部'
when v_deptno=30 then '市场部'
else '其他'
end;
dbms_output.put_line(v_dname);
end;
用case判断,并在分支中给某变量赋值
declare
v_dname varchar(20);
v_deptno int:=10;
begin
case v_deptno
when 10 then v_dname:='总经办'; --分支判断中执行,分号结束
when 20 then v_dname:='综管部';
when 30 then v_dname:='市场部';
else v_dname:='其他';
end case; -- case结束时要end case;
dbms_output.put_line(v_dname);
end;
declare
v_dname varchar(20);
v_deptno int:=10;
begin
case
when v_deptno=10 then v_dname:='总经办';
when v_deptno=20 then v_dname:='综管部';
when v_deptno=30 then v_dname:='市场部';
else v_dname:='其他';
end case;
dbms_output.put_line(v_dname);
end;
有待完善….
PL/SQL与SQL(Oracle)Case语句的更多相关文章
- SQL中IF和CASE语句
IF表达式 IF(A,B,C): 如果 A 是TRUE (A <> 0 and A<> NULL),则 IF()的返回值为B; 否则返回值则为 C.IF() 的返回值为数字值或 ...
- SQL中的IF ELSE(CASE语句的使用)(转载)
大家对IF ELSE语句可能都很熟悉,它是用来对过程进行控制的.在SQL的世界中CASE语句语句有类似的效果.下面简单的介绍CASE语句的用法.考虑下面的情况,假设有个user表,定义如下: CREA ...
- SQL中的IF ELSE(CASE语句的使用)
大家对IF ELSE语句可能都很熟悉,它是用来对过程进行控制的.在SQL的世界中CASE语句语句有类似的效果.下面简单的介绍CASE语句的用法.考虑下面的情况,假设有个user表,定义如下: CREA ...
- ORACLE PL/SQL 实例精解之第五章 条件控制:CASE语句
5.1 CASE语句 1. CASE语句具有如下结构 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSSION 2 THEN ...
- Oracle笔记 八、PL/SQL跳转/判断/循环语句块
--goto跳转语句 --在goto 后,跳转到相应的语句,然后执行该语句和后面所有语句 begin dbms_output.put_line('goto开始了'); goto c; --不被执行 d ...
- PL/SQL语句块提高1+case语句
set serveroutput on; declare --默认值的bianliang v_a ; -- v_b integer; --用stud.id 的类型 v_id stud.id%type; ...
- SQL CASE语句的使用
SQL CASE语句的使用 CASE是一个控制流语句,其作用与IF-THEN-ELSE语句非常相似,可根据数据选择值. CASE语句遍历条件并在满足第一个条件时返回值. 因此,一旦条件成立,它将短路, ...
- PL/SQL客户端中执行insert语句,插入中文乱码
问题描述:在PL/SQL客户端中执行insert语句,插入中文乱码 解决方案: 1.执行脚本 select userenv('language') from dual; 结果为AMERICAN_ ...
- 不安装Oracle客户端使用PL/SQL连接服务器端Oracle
从10G开始,Oracle 提供了一个较为轻量级的客户包,叫做Instant Client Package. 将它安装好后,就不用再安装庞大的Oracle客户端,可以直接通过使用PL/SQL连接服务器 ...
随机推荐
- oracle如何insert into 多个values
稍微熟悉Oracle的都知道,如果我们想一条SQL语句向表中插入多个值的话,如果如下语句 INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....; 这样会报错的,因为 ...
- CF884D:Boxes And Balls
浅谈\(Huffman\)树:https://www.cnblogs.com/AKMer/p/10300870.html 题目传送门:https://codeforces.com/problemset ...
- poj 3421 X-factor Chains——质因数分解
题目:http://poj.org/problem?id=3421 记忆化搜索竟然水过去了.仔细一想时间可能有点不对,但还是水过去了. #include<iostream> #includ ...
- winrm service
今天看脚本忽然发现一个服务,叫winRM服务,这是个PowerShell的远程管理.开启它可以很大程度的方便用PowerShell操控! 下面是我找到的一些资料: 在Linux中,我们可以使用安全的S ...
- setcookie函数的注意事项
函数说明 bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $pat ...
- 如果有多个集合的迭代处理情况【使用MAP】
在SQL开发过程中,动态构建In集合条件查询是比较常见的用法,在Mybatis中提供了foreach功能,该功能比较强大,它允许你指定一个集合,声明集合项和索引变量,它们可以用在元素体内.它也允许你指 ...
- C++字符集问题终极分析(可解决乱码问题)
最近研究vc,windows的东西真是很傻瓜,啥都给你做好,有个好处就是开发方便了. 有个弊端就是完全按微软的一套进行,规则都是它定的,你得知道它的很多api, 开发出来的代码效率不高,不过却可以比较 ...
- LTE230方案示意图
普天LTE230产品及解决方案 责任编辑:耿鹏飞 2016.12.26 16:42 来源:通信世界网 LTE230 普天 一.LTE230系统特点 (一)系统背景 随着社会的快速发展,能源危机 ...
- [转]ubuntu 网络配置 作者:Yudar
检查网络配置命令:ifconfig 一.通过配置文件配置 新手没怎么用过Ubuntu,所以走了不少弯路,网上找了很多方法,大都没对我起到帮助作用,所以把自己的配置方法写一写. Ubuntu上连了两块网 ...
- [0day]jQuery Mobile XSS
漏洞影响范围: 任何一个website使用了 jQuery Mobile 并且开放了重定向都有可能存在XSS,并且目前还没有相关补丁信息. 应用介绍: jQuery Mobile是jQuery 框架的 ...