Oracle函数练习题

题目及参考答案:

-- 单行函数:只有一个参数输入,只有一个结果输出
-- 多行函数或分组函数:可有多个参数输入,只有一个结果输出    -- 测试lower/upper/initcap函数,使用dual哑表
select lower('abc Def GHI') from dual;  --abc def ghi
select upper('abc Def GHI') from dual;  --ABC DEF GHI
select initcap('abc Def GHI') from dual;      --Abc Def Ghi-- 测试concat/substr函数,从1开始,表示字符,不论中英文
select concat('abc','一二三') from dual;         --abc一二三
select 'abc' || '一二三' || '哈吼' from dual;      --abc一二三哈吼
select concat('abc',concat('一二三','哈吼')) from dual;  --abc一二三哈吼
select substr('abc一二三',3,3) from dual;  --c一二-- 测试length函数,一个英文一个字节
select length('abc一二三') from dual;      --6-- 测试instr/lpad/rpad函数,从左向右找第一次出现的位置,从1开始
select instr('abcdefg','e') from dual;  --5
select LPAD('abc',6,'*') from dual;     --***abc
select RPAD('abc',6,'*') from dual;     --abc***-- 测试trim/replace函数
select trim(' ' from '  abc  a  ') from dual;       --abc  a
select replace('aaBBccAADDee','c','A') from dual;   --aaBBAAAADDee-- 测试round/trunc/mod函数作用于数值型
select round(1.12345,3) from dual;     --1.123
select trunc(1.12345,3) from dual;     --1.123
select mod(10,3) from dual;  --1-- 当前日期:sysdate
select to_char(sysdate, 'yyyy-mm-dd') from dual;    --2019-03-12-- 测试round作用于日期型(month)
select round(sysdate, 'month') from dual;  --2019/3/1-- 测试round作用于日期型(year)
select round(sysdate, 'year') from dual;   --2019/1/1-- 测试trunc作用于日期型(month)
select trunc(sysdate, 'month') from dual;  --2019/3/1-- 测试trunc作用于日期型(year)
select trunc(sysdate, 'year') from dual;   --2019/1/1-- 显示昨天,今天,明天的日期,日期类型 +- 数值 = 日期类型
select sysdate-1 "昨天", sysdate "今天", sysdate+1 "明天" from dual;  --2019/3/11 10:55:53 | 2019/3/12 10:55:53 | 2019/3/13 10:55:53-- 以年和月形式显示员工近似工龄,日期-日期=数值,假设:一年以365天计算,一月以30天计算
select ename "姓名", round(sysdate-hiredate,0)/365 "天数" from emp; --SMITH | 38.2575342465753 ......-- 使用months_between函数,精确计算到年底还有多少个月
select months_between('31-12月-19', sysdate) from dual; --9.59805630227001-- 使用months_between函数,以精确月形式显示员工工龄
select ename "姓名", months_between(sysdate, hiredate) "员工工龄" from emp;   --SMITH | 458.853571535245 ......-- 测试add_months函数,下个月今天是多少号
select add_months(sysdate,1) from dual;    --2019/4/12 11:04:33-- 测试add_months函数,上个月今天是多少号
select add_months(sysdate,-1) from dual;   --2019/2/12 11:05:32-- 测试next_day函数,从今天开始算,下一个星期三是多少号
select next_day(sysdate, '星期三') from dual; --2019/3/13 11:06:25-- 测试next_day函数,从今天开始算,下下一个星期三是多少号
select next_day(next_day(sysdate, '星期三'), '星期三') from dual; --2019/3/20 11:08:35-- 测试next_day函数,从今天开始算,下一个星期三的下一个星期日是多少号
select next_day(next_day(sysdate, '星期三'), '星期日') from dual; --2019/3/17 11:09:12-- 测试last_day函数,本月最后一天是多少号
select last_day(sysdate) from dual;       --2019/3/31 11:11:09-- 测试last_day函数,本月倒数第二天是多少号
select last_day(sysdate)-1 from dual;     --2019/3/30 11:11:21-- 测试last_day函数,下一个月最后一天是多少号
select last_day(add_months(sysdate,1)) from dual;     --2019/4/30 11:11:31-- 测试last_day函数,上一个月最后一天是多少号
select last_day(add_months(sysdate,-1)) from dual;    --2019/2/28 11:12:01-- 注意:
-- 1)日期-日期=天数
-- 2)日期+-天数=日期---------三大类型转换-- oracle中三大类型与隐式数据类型转换
-- (1)varchar2变长/char定长-->number,例如:'123'->123
-- (2)varchar2/char-->date,例如:'25-4月-15'->'25-4月-15'
-- (3)number---->varchar2/char,例如:123->'123'
-- (4)date------>varchar2/char,例如:'25-4月-15'->'25-4月-15'-- oracle如何隐式转换:
-- 1)=号二边的类型是否相同
-- 2)如果=号二边的类型不同,尝试的去做转换
-- 3)在转换时,要确保合法合理,否则转换会失败,例如:12月不会有32天,一年中不会有13月-- 查询1980年12月17日入职的员工(方式一:日期隐示式转换)
select * from emp where hiredate = '17-12月-80';       --7369 | SMITH | CLERK | 7902 | 1980/12/17 | 800.00 |  | 20-- 使用to_char(日期,'格"常量"式')函数将日期转成字符串,显示如下格式:2015 年 04 月 25 日 星期六
select to_char(sysdate,'yyyy" 年 "mm"月 "dd"日 "day') from dual;  --2019 年 03月 12日 星期二-- 使用to_char(日期,'格式')函数将日期转成字符串,显示如格式:2015-04-25今天是星期六 15:15:15
select to_char(sysdate,'yyyy-mm-dd"今天是"day hh24:mi:ss') from dual;    --2019-03-12今天是星期二 11:13:50-- 使用to_char(数值,'格式')函数将数值转成字符串,显示如下格式:$1,234
select to_char(1234,'$9,999') from dual;   -- $1,234-- 使用to_char(数值,'格式')函数将数值转成字符串,显示如下格式:¥1,234select to_char(1234,'$9,999') from dual;
select to_char(1234,'L9,999') from dual;            --¥1,234

Oracle函数练习题相关推荐

  1. oracle游标的说法,oracle游标练习题.doc

    oracle游标练习题 oracle游标练习题 当查询返回结果超过一行时,就需要一个显式游标,此时用户不能使用select into语句.PL/SQL管理隐式游标,当查询开始时隐式游标打开,查询结束时 ...

  2. Oracle数据库练习题(2)

    一.表展示 二.练习题及答案 11.列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称 (1)select t.empno, t.empname, d.dnamefrom (select a. ...

  3. Oracle数据库练习题(1)

    一.建表 create table empgj(empno number(4,0) primary key,ename varchar2(10), job varchar2(9),mgr number ...

  4. mybatis可以用oracle,使用MyBatis调用oracle函数(基于注释)

    我需要使用注解在MyBatis中调用Oracle函数.使用MyBatis调用oracle函数(基于注释) 我的映射: @Select("{ CALL #{outParam, jdbcType ...

  5. oracle增量 mysql_是否有任何mysql / Oracle函数给予增量号。基于另一列相似值的一列?...

    我有兴趣知道是否有任何MySQL / Oracle函数给增量号.在另一列相似的值的基础上的一列? 就像在我的下面的代码中,我有order_primary列,其中包含订单号.所以基于此我们可以确定有多少 ...

  6. 使用oracle 游标修改数据,Oracle 函数施行修改和游标传递

    Oracle 函数执行修改和游标传递 ORA-14551:不能在查询语句中执行dml语句,开始误以为函数里不能执行DML或DDL语句,后查到前辈通过采用自治事务解决,在此基础上演例 传递SQL语句对数 ...

  7. oracle 函数索引

    http://bbs.51cto.com/thread-26271-1.html 如何创建oracle函数索引 Oracle8i的很重要的一个新特性就是增加了function-based index这 ...

  8. oracle+查询主机地址,oracle函数:获取Internet主机名和ip地址

    您可能感兴趣的话题: Oracle 核心提示:oracle函数获取Internet主机名和ip地址 Oracle包utl_inaddr 作用:用于取得局域网或Internet环境中的主机名和IP地址. ...

  9. row number函数 oracle,oracle函数 ROW_NUMBER()

    [语法]ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) [功能]表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后 ...

最新文章

  1. python property装饰器原理,Python @property装饰器不起作用
  2. Android 分享机顶盒项目的封装类《GridView》
  3. SpringBoot开发案例之整合Dubbo分布式服务
  4. android汽车之家顶部滑动菜单,Android自定义控件之仿汽车之家下拉刷新
  5. ATO/MTO类机械制造业特点以及ERP需求分析(三)
  6. 查询数据库,处理NULL值问题
  7. Android StateFlow详解
  8. 各种排序笔记---基于比较排序部分
  9. SQL Server 2005将某些数据库行为设置为与指定的 SQL Server 版本兼容
  10. 企业级数据库备份方案完全攻略
  11. 基于嵌入式系统的gnash最小库依赖关系
  12. 搜索引擎登录工具_做seo必须懂的十条搜索引擎语法
  13. libiconv移植
  14. 项目管理 : 需求管理的6个流程
  15. python内置函数源码中啥都没有_如何查看python内置函数源码
  16. JAVA中黄金分割点的问题
  17. WINVNC Server详解
  18. 信息安全管理——数据编码与密码基础
  19. 编译小米2s CyanogenMod 版本遇到的几个问题
  20. 对爱词霸(iciba)生词本功能的一些建议

热门文章

  1. 计算机excel新课导入,职称计算机辅导:Powerpoint导入Excel工作表
  2. kali------kali更新源
  3. 百度地图离线化(API v=1.3)
  4. Winform控件开发(9)——ListBox(史上最全)
  5. C#ListBox控件
  6. 查找论文文献的途径有哪些
  7. uni-app+优博讯DT50U进行二次开发
  8. 深度理解互联网思维,不可不读的50本书(记录下,后面读)
  9. CNN网络模型的发展概述
  10. 偷偷告诉你四款好玩实用的电脑软件让你嗨翻天