Oracle 中的条件查询语句及函数(实例说明)
Oracle 中的函数
Sql--plus函数:
字符串函数是oracle使用最广泛的一种函数.
² LOWER:小写
² UPPER:大写
² INITCAP:首字母大写
² CONCAT:连接
² SUBSTR:截取 (参数,开始,数目)
² LENGTH:返回字符串的长度
² INSTR:(参数,字母) 返回字母出现的位置
² LPAD:(参数,长度,在前补齐参数字母)
² |RPAD:(参数,长度,在后补齐参数字母)
² TRIM :
² REPLACE:(参数,参数[,参数]):第一个参数操作数,第二是要查找的字符,第三个是替换的字符,如果没有第三个就删除查找的字符。
实例:
//查询名称为scott的员工信息 (不区分大小写)
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where lower(ename)='scott';
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where upper(ename)='SCOTT';
//查询员工信息 把员工名称与工作连接在一起
SQL> select empno,concat(ename,job),mgr,hiredate,sal,comm,deptno from emp;
//查询员工信息 把员工名称与工作连接在一起
SQL> select empno,concat(ename||'is work:',job),mgr,hiredate,sal,comm,deptno from emp;
//查询员工名称中含有O字符的位置
SQL> select empno,instr(ename,'O'),job,mgr,hiredate,sal,comm,deptno from emp;
//查询员工名称中含有O字符的位置并且求出了员工名称字符长度
SQL> select empno,instr(ename,'O'),length(ename),job,mgr,hiredate,sal,comm,deptno from emp;
//在查询上面结果中过滤出员工工作从第三字母开始为ERK员工信息
SQL> select empno,instr(ename,'O'),length(ename),job,mgr,hiredate,sal,comm,deptno from emp where substr(job,3)='ERK';
备注:当含有两个参数的时候,从开始位置直接到参数结束的结束为止
//在效果同上的同时指明了截取个数为3
SQL> select empno,instr(ename,'O'),length(ename),job,mgr,hiredate,sal,comm,deptno from emp where substr(job,3,3)='ERK';
//查询员工信息 薪资是10位位数不够在左部分补*填充
SQL> select empno,ename,job,mgr,hiredate,LPAD(sal,10,'*'),comm,deptno from emp;
//查询员工信息 薪资是10位位数不够在右部分补*填充
SQL> select empno,ename,job,mgr,hiredate,RPAD(sal,10,'*'),comm,deptno from emp;
//查询员工信息 把员工名称中含有S字符去除掉
SQL> select empno,TRIM('S' from ename),job,mgr,hiredate,10,comm,deptno from emp;
等效于:
SQL> select empno,TRIM( both 'S' from ename),job,mgr,hiredate,10,comm,deptno from emp;
//查询员工信息 把员工名称中前面有S字符去除掉
SQL> select empno,TRIM( Leading 'S' from ename),job,mgr,hiredate,10,comm,deptno from emp;
//等效于
SQL> select empno,LTRIM( ename,'S'),job,mgr,hiredate,10,comm,deptno from emp;
//查询员工信息 把员工名称中后面有S字符去除掉
SQL> select empno,TRIM( trailing 'S' from ename),job,mgr,hiredate,10,comm,deptno from emp;
等效于:
SQL> select empno,RTRIM( ename,'S'),job,mgr,hiredate,10,comm,deptno from emp;
数字函数:
² ROUND: 四舍五入
² ROUND(45.926, 2) 45.93
² TRUNC: 截断
² TRUNC(45.926, 2) 45.92
² MOD: 求余
² MOD(1600, 300) 100
² ABS:绝对值
² CEIL:返回大于或等于value的最小整数
² FLOOR:返回小于或等于value的最大整数
² SQRT :返回value的平方根 负数无意义。
//四舍五入 结果为46
SQL> select round(45.56) from dual;
//绝对值 结果为45.56
SQL> select abs(-45.56) from dual;
//大于等于最小整数 结果为-45
SQL> select ceil(-45.56) from dual;
//小于等于最大整数 结果为-46
SQL> select floor(-45.56) from dual;
//求余数 结果为300
SQL> select mod(1800,500) from dual
//截取的数的操作数是正数的情况下:只操作小数位 结果为1800.11
SQL> select trunc(1800.11111,2) from dual;
//截取的数的操作数是负数的情况下:操作的是小数点之前的位,把操作位小数点之前的位数全部改写成0. 结果就是1000
SQL> select trunc(1899.11111,-3) from dual;
日期时间函数
Ø Oracle 中的日期型数据实际含有两个值: 日期和时间。默认的日期格式是 DD-MON-RR.日期时间函数用来返回当前系统的日期和时间、以及对日期和时间类型的数据进行处理运算。
Ø add_months(date,count);在指定的日期上增加count个月
Ø last_day(date);返回日期date所在月的最后一天
Ø months_between(date1,dates);返回date1到date2之间间隔多少个月
Ø new_time(date,this’,’other’);将时间date从this时区转换成other时区
Ø next_day(day,’day’);返回指定日期或最后一的第一个星期几的日期,这里day为星期几
Ø sysdate();获取系统的当前日期
Ø current_timestamp();获取当前的时间和日期值
Ø round:日期的四舍五入
Ø trunc 日期的截取
日期的数学运算:
l 在日期上加上或减去一个数字结果仍为日期。
l 两个日期相减返回日期之间相差的天数。
l 可以用数字除24来向日期中加上或减去小时。
实例;
//获取系统的当前时间 显示的格式采用默认格式 显示结果:07-4月 -11 11.15.38.390000 上午 +08:00
SQL> select current_timestamp from dual;
//获取系统的当前日期值 显示结果:2011-4-7 11
SQL> select sysdate from dual;
//为当前日期加上3个月 显示的结果:2011-7-7 11:18:36
select add_months(sysdate,3) from dual;
//返回当前月的最后一天 显示的结果:2011-4-30 11:19:4
select last_day(sysdate) from dual;
//返回两个日期之间的间隔月是几: 结果为:4
SQL> select months_between(add_months(sysdate,4),sysdate) from dual;
//从GMT时区转换成AST时区的日期结果
SQL> select new_time(sysdate,'GMT','AST') from dual;
//返回下一个星期一的日期值 必须写成星期’几’
SQL> select next_day(sysdate,'星期一') from dual;
转换函数:
v 隐式转换:在运算过程中由系统自动完成的
v 显式转换:在运算过程中需要调用相应的转换函数实现。
v 隐式转换:是oracle自己装换的形式,在这里不做研究
v 显式转换
v to_char(date,’format’):按照指定的格式format把数字或日期类型的数据转换成字符串
格式:
必须包含在单引号中而且大小写敏感。
可以包含任意的有效的日期格式。
日期之间用逗号隔开。
实例:
//把当前日期转换成YYYY/MM/DD的格式
SQL> select to_char(current_timestamp,'YYYY/MM/DD') from dual;
//把当前日期转换成YYYY/MM/DD HH24/MI/SS AM的格式
SQL> select to_char(current_timestamp,'YYYY/MM/DD HH24/MI/SS AM') from dual;
//DD “of” MONTH
SQL> select to_char(current_timestamp,'YYYY DD "of" MONTH HH/MI/SS AM') from dual;
//把当数字按照$99,999这种方式返回字符串 并且操作数的位数不能够大于5(即$后边的位数)位,否则话结果会是########
SQL> select to_char(11111,'$99,999') from dual;
to_number(char);把包含了数字格式的字符串转换成数字数据
to_date(string,’format’);按照指定格式的format把字符串转换成日期数据,如果省略了foramt格式,那么就采用默认的日期格式(DD-MON-YY);
//把当前字符串转换成日期
SQL> select to_date('2011-02-08','YYYY-MM-DD') from dual;
//求出两个日期之间相差的天数
SQL> select to_date('2011-07-15','YYYY-MM-DD')-to_date('2011-02-08','YYYY-MM-DD') from dual;
//求出两个日期之间相差的周次
SQL> select (to_date('2011-07-15','YYYY-MM-DD')-to_date('2011-02-08','YYYY-MM-DD'))/7 from dual;
//对周次进行向上取整
SQL> select ceil((to_date('2011-07-15','YYYY-MM-DD')-to_date('2011-02-08','YYYY-MM-DD'))/7) from dual;
chartorowid(char);把字符串转换成rowid类型
rowidtochar(x);把rowid类型转换成字符类型数据
通用函数
这些函数适用于任何数据类型,同时也适用于空值:
NVL (expr1, expr2)
NVL2 (expr1, expr2, expr3)
NULLIF (expr1, expr2)
COALESCE (expr1, expr2, ..., exprn)
nvl()
将空值转换成一个已知的值: fon
分享到:
相关推荐
在这个"oracle查询语句实例"的压缩包中,你将找到一系列实用的查询示例,帮助你深入理解和熟练掌握Oracle SQL的用法。 1. **基础查询** - `SELECT`语句:用于从表中检索数据,基本格式是`SELECT column1, column2 ...
本篇文章将基于"oracle常用查询语句示例"这一主题,深入探讨在Oracle中执行多表查询和单表中复杂查询的方法。 首先,我们来看单表查询。在Oracle中,基础的SELECT语句用于从单个表中检索数据。例如: ```sql ...
本文将深入探讨Oracle中的几种主要函数类型:单行函数、多行函数以及分组函数,并给出相应的实例来帮助理解。 1. **单行函数** 单行函数在处理每一行数据时返回一个结果。它们分为字符函数、数字函数、日期函数和...
分析函数是在一个查询中最后计算的,除了 order by(在语句最后 order by 之前),所以在同一个查询层次中,分析函数只可能出现在 order by、select 中,其他 where、group by、having 等处不能出现分析函数。...
Oracle数据库中的PL/SQL(Procedural Language/Structured Query Language)是一种强大的编程语言,它将SQL的查询功能与过程式编程语言的控制结构相结合,为数据库管理提供了更高级别的抽象和控制。PL/SQL是Oracle...
本文将深入探讨在"Oracle学习及练习语句"主题中涉及的关键知识点,包括DDL语句、联系表设计、ROWNUM的使用以及如何查询和删除重复记录。 1. DDL(Data Definition Language)语句:在Oracle中,DDL用于创建、修改或...
Oracle 中的 XML 函数是指在 Oracle 数据库中用于处理 XML 数据的函数。这些函数可以用于 SELECT 语句,也可以用于 UPDATE 和 WHERE 语句。学习这些函数可以使得保存的数据更加具有可读性。 Oracle 提供了多种 XML...
Oracle 中的 sys_context 函数 sys_context 函数是 Oracle 提供的一个获取环境上下文信息的预定义函数。该函数用来返回一个指定 namespace 下的 parameter 值。该函数可以在 SQL 和 PL/SQL 语言中使用。 sys_...
"Oracle语句实例大全"显然是一份集合了大量Oracle SQL查询、操作和管理示例的资源,旨在帮助用户更好地理解和掌握Oracle数据库操作。 在Oracle SQL中,有以下几个核心知识点: 1. **数据查询**:SQL的SELECT语句是...
通过学习和实践这些Oracle存储过程和函数的实例,你可以更好地理解和掌握如何在实际项目中应用它们。Oracle 存储过程详解.doc文档可能包含了更多详细的步骤和示例,建议详细阅读,以深化对这一主题的理解。
DECODE函数是Oracle中的一个条件分支函数,它的功能类似于编程语言中的if-else if-else语句。DECODE函数的格式为: ``` DECODE(字段或表达式, 值1, 结果1, 值2, 结果2, ... , 默认结果) ``` 如果字段或表达式的值...
Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的函数集使得开发者能够处理复杂的查询和数据操作。本文将深入探讨Oracle函数大全及其API,同时也会涉及到错误代码查询,帮助你更好地理解和...
"经典SQL语句大全.doc"和"ORACLE__SQL语句教学.pdf"这两份文档很可能是详尽的实例教程,包含了SQL的常见用法、最佳实践和可能的陷阱。学习这些内容不仅可以帮助你理解和执行基本的SQL操作,还能让你掌握高级特性和...
在Oracle中,基本的数据查询语句是SELECT,它用于从表中获取数据。例如: ```sql SELECT column1, column2 FROM table_name; ``` 你可以使用WHERE子句进行条件筛选,如: ```sql SELECT * FROM table_name WHERE ...
Oracle查询语句是数据库管理中不可或缺的一部分,尤其在Oracle数据库系统中,强大的SQL查询能力能够帮助用户高效地处理数据。本资源集锦涵盖了日期查询、嵌套查询和多表查询等多个方面,对于学习和提升Oracle SQL...
文件名"Oracle_Sqltest"可能包含了各种用于测试的SQL语句,这些语句可能是常见的查询、插入、更新或删除操作,也可能包括复杂的联接、子查询和聚合函数,这些都是性能测试中的常见场景。 在进行Oracle SQL语句的...
以上内容覆盖了Oracle PL/SQL的基本语法、SQL*PLUS命令、SQL查询、条件表达式、算术运算、日期和时间处理以及DML语句等方面。对于想要深入了解Oracle PL/SQL的开发者来说,这些知识点是非常宝贵的资源。
函数是在Oracle数据库中定义的一组PL/SQL语句,用于计算并返回单个值。下面是一个计算年收入的函数示例: ```sql CREATE FUNCTION calculate_annual_salary (p_empno NUMBER) RETURN NUMBER IS year_sal NUMBER(7,...
本主题将深入探讨Oracle中的几个核心概念:函数、存储过程、游标以及简单的实例,这些都是数据库管理员和开发人员日常工作中不可或缺的部分。 首先,我们来了解**Oracle函数**。函数是预定义的代码块,接受零个或多...
文档可能包含各种条件控制结构的实例,帮助用户掌握如何在存储过程中进行条件分支。 6. **Oracle的rollup**: ROLLUP操作符在GROUP BY子句中使用,生成多层汇总,类似于SQL的“cube”功能,但只计算上一层的数据。...