Oracle单行查询

单行查询也叫作单行函数,使用某个函数对数据进行操作

关于基本查询:oracle基本查询

  1 SQL> select lower(‘Hello WOrld‘) 转小写,
  2      upper(‘Hello WOrld‘) 转大写,
  3      initcap(‘hello world‘) 首字母大写
  4   2  from dual;
  5
  6
  7 SQL> --substr(a,b)取子串, 从a中,第b位开始取 ,直到末尾
  8 SQL> select substr(‘Hello World‘,3) 子串 from dual;
  9 SQL> --substr(a,b,c) 从a中,第b位开始取,取c位
 10 SQL> select substr(‘Hello World‘,3,4) 子串 from dual;
 11
 12
 13 SQL> --length 字符数  lengthb字节数
 14 SQL> select length(‘Hello World‘) 字符,lengthb(‘Hello World‘) 字节 from dual;
 15
 16
 17 SQL> --lpad 左填充  rpad 右填充
 18 SQL> -- abcd  填充成10位
 19 SQL> select lpad(‘abcd‘,10,‘*‘) 左,rpad(‘abcd‘,10,‘*‘) 右 from dual;
 20 左         右
 21 ---------- ----------
 22 ******abcd abcd******
 23
 24 SQL> --trim 去掉前后指定的字符
 25 SQL> select trim(‘H‘ from ‘Hello WorldH‘) from dual;
 26  如果前面后者后面指定的字符有多个,那么也会都去掉比如:hhhello,会把h都去掉
 27
 28 SQL> --replace 替换
 29 SQL> select replace(‘Hello WOrld‘,‘l‘,‘*‘) from dual;
 30 REPLACE(‘HE
 31 -----------
 32 He**o WOr*d
 33
 34 SQL> --四舍五入 ,如果位数为负数,那么就会往前推,-1看个位保存到十位,-2看十位保存到百位
 35 SQL> select round(45.926,2) 一,
 36      round(45.926,1) 二,
 37      round(45.926,0) 三,
 38      round(45.926,-1) 四,
 39      round(45.926,-2) 五
 40      from dual;
 41
 42         一         二         三         四         五
 43 ---------- ---------- ---------- ---------- ----------
 44      45.93       45.9         46         50          0
 45
 46 SQL> --截断 ,从位数后面直接截断,个位为0位
 47 SQL> select trunc(45.926,2) 一,
 48      trunc(45.926,1) 二,
 49      trunc(45.926,0) 三,
 50      trunc(45.926,-1) 四,
 51      trunc(45.926,-2) 五
 52   2* from dual
 53 SQL> /
 54
 55         一         二         三         四         五
 56 ---------- ---------- ---------- ---------- ----------
 57      45.92       45.9         45         40          0
 58
 59 SQL> --当前时间
 60 SQL> select sysdate from dual;
 61 SQL> --格式化时间
 62 SQL> select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) from dual;
 63 时间可以进行运算,不允许相加
 64 SQL> select (sysdate-1) 昨天,sysdate 今天,(sysdate+1) 明天 from dual;
 65 昨天           今天           明天
 66 -------------- -------------- --------------
 67 30-6月 -16     01-7月 -16     02-7月 -16
 68
 69 SQL> --months_between 相差的月数 ,显示两个数据之间间隔的月份数量
 70 SQL> select ename,hiredate,(sysdate-hiredate)/30 一,
 71      months_between(sysdate,hiredate) 二
 72   2  from emp;
 73 通过上面的这条语句我们发现,单纯的/30是不准确的
 74
 75 SQL> --add_months 月份进行计算操作,加上多少个月之后
 76 SQL> --53个月后
 77 SQL> select add_months(sysdate,53) from dual;
 78
 79 SQL> --last_day 获取传入时间当月的最后一天
 80 SQL> select last_day(sysdate) from dual;
 81
 82 SQL> --next_day 从传入日期开始下一个指定星期几
 83 SQL> --下一个星期五
 84 SQL> select next_day(sysdate,‘星期五‘) from dual;
 85 应用
 86 SQL> /*
 87 SQL> next_day的应用:每个星期一自动备份表中的数据
 88 SQL> 1. 分布式数据库
 89 SQL> 2. 触发器  快照
 90 SQL> */
 91 对日期进行四舍五入操作,默认当前时间为2016-07-01
 92 SQL> select round(sysdate,‘month‘),round(sysdate,‘year‘) from dual;
 93 ROUND(SYSDATE, ROUND(SYSDATE,
 94 -------------- --------------
 95 01-7月 -16     01-1月 -17
 96
 97 将日期转换成字符,to_char(数据,format)
 98 SQL> select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss"今天是"day‘) from dual;
 99 TO_CHAR(SYSDATE,‘YYYY-MM-DDHH24:MI
100 ----------------------------------
101 2016-07-01 12:27:22今天是星期五
102
103 SQL> --查询员工薪水:两位小数,千位符,本地货币代码 L
104 SQL> select to_char(sal,‘L9,999.99‘) from emp;
105 TO_CHAR(SAL,‘L9,999
106 -------------------
107            ¥800.00
108
109 SQL> --通用函数
110
111 SQL> --nvl2(a,b,c) 当a=null的时候,返回c;否则返回b
112      nvl(a,b)当a=null的时候,返回b;否则返回a
113 SQL> select sal*12+nvl2(comm,comm,0) from emp;
114
115 SQL> --nullif(a,b) 当a=b的时候,返回null;否则返回a
116 SQL> select nullif(‘abc‘,‘abc‘) 值 from dual;
117
118 SQL> --coalesce 从左到右 找到第一个不为null的值
119 SQL> select comm,sal,coalesce(comm,sal) "第一个不为null的值" from emp;
120
121 case when 的用法
122
123 举例,涨工资:
124
125 sql99的语法
126 SQL> select empno,ename,job,sal 涨前,
127   2         case job when ‘PRESIDENT‘ then sal+1000
128   3                  when ‘MANAGER‘ then sal+800
129   4                  else sal+400
130   5          end 涨后
131   6  from emp;
132
133 sqlplus语法,decode语句
134 SQL> select empno,ename,job,sal 涨前,
135   2         decode(job,‘PRESIDENT‘,sal+1000,
136   3                    ‘MANAGER‘,sal+800,
137   4                              sal+400) 涨后
138   5  from emp;
时间: 2024-10-14 13:11:43

Oracle单行查询的相关文章

数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> 数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例 实验所用数据表 子查询,解决一步不能求解 查询工资比scott高的员工信息: 子查询知识体系搭建: 解释3,查询部门是sales的员工信息: 方法1:子查询 [方法2]:多表: 优化考虑: 解释4[select],只能放单行子查询 解释4[from] 考题:显示员工姓名,薪水 解释

oracle单行函数

单行函数的语法 Function_name(column|expression, [arg1, arg2, ...]) 参数说明: Function_name    函数名称 column           列名 expression       表达式 arg1,arg2,...    参数 单行函数分类: 字符函数:接收字符输入并返回字符或数值 数值函数:接受数据输入并返回数值 日期函数:对日期型数据进行操作 转换函数:从一种数据类型转换为另外一种数据类型 通用函数:NVL 函数 DECO

oracle高级查询(实例基于scott用户四张表)

oracle高级查询(实例基于scott用户四张表) 分组查询 多表查询 子查询 综合实例 ======================================================================= scott用户的四张表(emp,dept,bonus,salgrade) 没有这四张表的可参考http://blog.csdn.net/love_legain/article/details/54311040进行创建 -----------------------

【Oracle 常用查询】oracle表空间使用率统计查询

参考1 --查询表空间使用情况 SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '

Oracle 模糊查询方法

在这个信息量剧增的时代,如何帮助用户从海量数据中检索到想要的数据,模糊查询是必不可少的.那么在Oracle中模糊查询是如何实现的呢? 一.我们可以在where子句中使用like关键字来达到Oracle模糊查询的效果:在Where子句中,可以对datetime.char.varchar字段类型的列用Like关键字配合通配符来实现模糊查询,以下是可使用的通配符: (1)% :零或者多个字符,使用%有三种情况 字段 like '%关键字%'字段包含"关键字"的记录 字段 like '关键字%

Oracle单行函数笔记

Oracle中单行函数的分类:1.字符函数substr():字符串截取select substr('我爱你,你知道么?',0,4) from dual执行结果:我爱你,length函数:字符串长度select length('我爱你,你知道么?') from dual执行结果:9Replace()函数:替换指定字符select replace('我爱你,你知道么?','你','的是他') from dual执行结果:我爱的是他,的是他知道么?upper函数:转字母大写select upper('

oracle 层次化查询(生成菜单树等)

1.简介:Oracle层次化查询是Oracle特有的功能实现,主要用于返回一个数据集,这个数据集存在树的关系(数据集中存在一个Pid记录着当前数据集某一条记录的Id). 2.层次化查询主要包含两个子句,一个start with另一个是connect by. start with:这个子句一般用于指定层次化查询的开始节点(也就是树的最顶级节点),找到最顶级节点,然后按照一定的规则开始查找其剩余的子节点 connect by:这个子句就是上面所说的规则,用于查找剩余子节点的规则 CREATE TAB

Oracle分页查询语句的写法(转)

分页查询是我们在使用数据库系统时经常要使用到的,下文对Oracle数据库系统中的分页查询语句作了详细的介绍,供您参考. Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用.Oracle分分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHER

ORACLE 分页查询

Oracle之分页查询 Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的范围.