oracle 条件语句的写法
1.基本的if else
DECLARE
I INT :=1;
BEGIN
IF I=1 THEN
DBMS_OUTPUT.PUT_LINE('TRUE');
ELSE
DBMS_OUTPUT.PUT_LINE('FALSE');
END IF; END;
2.这里用的是elsif 而不是 else if(注意区分一下就行了)
DECLARE
I INT :=1; --如果I=1 满足第一个条件之后,就不会再走第二个条件
--如果I=5,则直接走最后的一个条件
BEGIN
IF I<4 THEN
DBMS_OUTPUT.PUT_LINE('');
ELSIF I<3 THEN
DBMS_OUTPUT.put_line('');
ELSIF I<2 THEN
DBMS_OUTPUT.PUT_LINE('');
ELSE
DBMS_OUTPUT.PUT_LINE('');
END IF;
END;
3.decode语法
--DECODE('条件',值1,真,假)
--简单实例一
SELECT DECODE((2-2),0,'TRUE','FALSE') FROM DUAL; --结果返回true
--简单实例二;比较两个数的大小;
--先介绍一函数的使用sign() 它只会返回三个值:1 0 -1
SELECT SIGN(2-1) FROM DUAL; --正数就返回1
SELECT SIGN(2-2) FROM DUAL; --0 就返回0
SELECT SIGN(2-3) FROM DUAL; --负数就返回-1
--然后配合它 我们可以比较两个数的大小滴呀
DECLARE
I INT :=2;
J INT :=3;
RESULT INT :=0;
BEGIN
SELECT DECODE(SIGN(I-J),-1,I,J) INTO RESULT FROM DUAL; --比较连个数,求最小或者最大的数
DBMS_OUTPUT.put_line(RESULT); --这样我们就求出了最小的一个数值滴呀
END;
--实例三(字段)
DECLARE
NAME VARCHAR2(99) :='DD';
RESULT VARCHAR2(99) ;
BEGIN
SELECT DECODE(NAME,'JACK','JACK','TOM','TOM','DEFAULUT') INTO RESULT FROM DUAL;
--第一个参数值 也可以是我们的字段;
--字段,比较,值1,比较,值2,默认值
--进行这样的基本模式比较低呀
DBMS_OUTPUT.put_line(RESULT);
END;
DECODE的应用 ,下面我们看这样的一个需求;
CREATE TABLE STUINFO(
ID NUMBER,
NAME VARCHAR2(40),
SEX VARCHAR2(4)
) INSERT INTO STUINFO VALUES(1,'JACK','男'); INSERT INTO STUINFO VALUES(2,'TOM','男'); INSERT INTO STUINFO VALUES(3,'ANDY','女'); INSERT INTO STUINFO VALUES(4,'CANDY','女'); COMMIT; --现在我们来统计班上 男生多少人,女生多少人;
--方法一;
SELECT COUNT(*) FROM STUINFO WHERE SEX='男'; SELECT COUNT(*) FROM STUINFO WHERE SEX='女'; --方法二;(如果id没有重复的话)
--我们再求一次和
--方法虽然有点绕弯,但是可以锻炼我们写sql语句的能力滴呀
SELECT SUM(MEN_COUNT) "男生总和",SUM(FEMEL_COUNT) "女生总和" FROM (
SELECT ID,
SUM(CASE SEX WHEN '男' THEN 1 ELSE 0 END) "MEN_COUNT",
SUM(CASE SEX WHEN '女' THEN 1 ELSE 0 END) "FEMEL_COUNT"
FROM STUINFO
GROUP BY ID
) --方法三,自然就用到我们的DECODE
--这样用起来的 相当的方便
SELECT SUM(DECODE(SEX,'男',1,0)) "MEN_TOTAL", SUM(DECODE(SEX,'女',1,0)) "女生总和" FROM STUINFO
4.case when 的用法
关于学生等级的分法;
--关于学生成绩 分等级的计算滴呀
--CASE WHEN 字段 THEN 的用法;
SELECT NAME,
CASE WHEN GREADE >85 THEN '优秀'
WHEN GREADE >70 THEN '良好'
WHEN GREADE >60 THEN '及格'
ELSE '不及格'
END "等级"
FROM STU --然后是我们DEcode 的使用方法滴呀 SELECT NAME, DECODE(SIGN(GREADE-85),1,'优秀',0,'优秀',-1,
DECODE(SIGN(GREADE-70),1,'良好',0,'良好,-1',
DECODE(SIGN(GREADE-60),1,'及格',0,'及格',-1,'不及格')
)) "等级"
FROM STU
oracle 条件语句的写法的更多相关文章
- mybatis中Oracle分页语句的写法
最近一段时间使用oracle数据库查询分页, 用的是springboot. Oracle数据库中没有像mysql中limit的写法, 只能换其他方式写. 考虑到oracle中的ROWNUM变量, 使用 ...
- 很多人不知道的Python 炫技操作:条件语句的写法
有的人说 Python 是一门 入门容易,但是精通难的语言,这一点我非常赞同. Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的.在这些人的眼里,能够写出那 ...
- 【Python】解析Python中的条件语句和循环语句
1.if语句 if语句有好几种格式,比如: if condition: statement 使用 if ... else ...: if condition: statement(1) else: s ...
- Python趣味入门4:选择往往是最重要的-条件语句
人生处处有选择,程序也有选择,为了让程序变得更加强壮,程序员必须考虑任何情况,上一篇了解到了如何使用Python来行顺序语句的编写,我们写了一个可以输入姓名的生日祝贺程序,今天我们挑战条件语句! 1. ...
- Oracle分页查询语句的写法(转)
Oracle分页查询语句的写法(转) 分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. Oracle分页查询语句使我们最常用的 ...
- Oracle把逗号分割的字符串转换为可放入in的条件语句的字符数列
Oracle把逗号分割的字符串转换为可放入in的条件语句的字符数列 前台传来的字符串:'589,321' SELECT*FROM TAB_A T1 WHERE T1.CODE IN ( SEL ...
- Oracle中分页查询语句的写法
要动态的变化分页查询的条件,比如pageNow 这个变量表示的是当前是第几页, oracle分页有通用写法,假设一页5行 select * from ( select t.*,rownum rn fr ...
- oracle高性能的SQL语句的写法
1.当多表查询的时候,把数据量小的表放在最后面,ORACLE会把最后面的表当作基础表,因为表间连接时,最右边的表会被放到嵌套循环的最外层.最外层的循环次数越少,效率越高. 2.Oracle采用自下而上 ...
- Oracle的存储过程基本写法
转: Oracle的存储过程基本写法 目录 1.1,Oracle存储过程简介: 1.2,创建存储过程的语法: 2.0,游标的使用.看到的一段解释很好的概念,如下: 回到顶部 1.1,Oracle存储过 ...
随机推荐
- PHP为什么会被认为是草根语言?
PHPer是草根吗? 从PHP诞生之日起,PHP就开始在Web应用方面为广大的程序员服务.同时,作为针对Web开发量身定制的脚本语言,PHP一直秉承简单.开源的 思想,这也使得PHP得以快速的发展,并 ...
- 使用RBTool自动提交code review请求
使用RBTool自动提交code review请求 前言 让我们回想一下手工提交review请求的过程: 首先得用 svn diff > filename.diff 生成diff文件. 然后输入 ...
- [文字雲產生器] Tagxedo 把文字串成雲、變成畫,印在 T-Shirt、馬克杯、詩袋….
http://www.tagxedo.com/app.html 有種東西叫「Word Clouds」,就是把一堆文字依照不同的大小.顏色.角度與位置拼湊在一起,讓他變成像一朵雲一般.組合成各種不同的形 ...
- MySQL 数据库设计 笔记与总结(4)维护优化
[维护和优化的工作] ① 维护数据字典 ② 维护索引 ③ 维护表结构 ④ 在适当的时候对表进行水平拆分或垂直拆分 [维护数据字典] a 使用第三方工具对数据字典进行维护 b 利用数据库本身的备注字段来 ...
- 用命令行导出和导入MySQL数据库
php 用命令行导出和导入MySQL数据库 命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files ...
- Bootstrap页面布局19 - BS提示信息
提示信息的设计 提示信息的类: .alert:提示信息类 .alert alert-danger: .alert alert-error: .alert alert-success: .alert a ...
- Nginx Location 语法,与简单配置[转]
一、介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器 ...
- PHP中数组合并的两种方法及区别介绍
PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = ...
- Centos下安装Scrapy
Scrapy是一个开源的机遇twisted框架的python的单机爬虫,该爬虫实际上包含大多数网页抓取的工具包,用于爬虫下载端以及抽取端. 安装环境: centos5.4 python2.7.3 安装 ...
- javaWeb中struts开发——Logic标签
1.Struts标签的logic标签 Logic标签是逻辑标签,是Struts中比较重要的标签,完成各种逻辑运算操作,可以直接支持全局调转. 2.1<logic:present><l ...