1. --1,大小写控制函数
  2. SELECT LOWER('Hello World') 转小写,
  3. UPPER('Hello World') 转大写,
  4. INITCAP('hello world') 首字母大写
  5. FROM DUAL;
  6. --2,字符控制函数
  7. SELECT CONCAT('Hello','World') 字符连接
  8. FROM DUAL;
  9. --3,求字母串中的某个子串
  10. SELECT SUBSTR('Hello World',3) FROM DUAL;
  11. --截取从第3个字符到末尾
  12. SELECT SUBSTR('Hello World',3,4) FROM DUAL;
  13. --截取从第3个字符连续4个字符
  14. --4,字符数和字节数
  15. SELECT LENGTH('China') 字符数,
  16. LENGTHB('China') 字节数
  17. FROM DUAL;
  18. --5,在母串中,查找子串的位置
  19. SELECT INSTR('Hello World','ll')
  20. FROM DUAL;
  21. --6,左右填充,将abcd用*填充到10位
  22. SELECT LPAD('abcd',10,'*') 左填充,
  23. RPAD('abcd',10,'*') 右填充
  24. FROM DUAL;
  25. --7,去掉字符串前后指定的字符
  26. SELECT TRIM('H' FROM 'Hello WorldH')
  27. FROM DUAL;
  28. --8,字符串替换函数
  29. SELECT REPLACE('Hello World','l','*')
  30. FROM DUAL;
  31. --9,数字函数
  32. SELECT ROUND(45.926,2) 四舍五入,
  33. TRUNC(45.926,2) 截断,
  34. MOD(1600,300) 求余
  35. FROM DUAL;
  36. --10,ROUND函数
  37. SELECT ROUND(45.923,0) 整数位,
  38. ROUND(45.923,-1) 十位,
  39. ROUND(45.923,-2) 百位
  40. FROM DUAL;
  41. --11,显示当前日期
  42. SELECT SYSDATE
  43. FROM DUAL;
  44. --12,指定格式显示时间
  45. SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')
  46. FROM DUAL;
  47. --13,显示昨天,今天和明天,加减数字
  48. SELECT SYSDATE - 1 昨天,
  49. SYSDATE 今天,
  50. SYSDATE + 1 明天
  51. FROM DUAL;
  52. --14,两个日期相减,结果为相差的天数,查询员工
  53. --信息,显示员工工龄,两个日期不能相加
  54. SELECT EMPNO,ENAME,SYSDATE - HIREDATE 天
  55. FROM EMP;
  56. --15,查询员工信息,显示员工工龄,分别按照天,
  57. --星期,月显示
  58. SELECT EMPNO,ENAME,SYSDATE - HIREDATE 天,
  59. (SYSDATE - HIREDATE)/7 星期, (SYSDATE - HIREDATE)/30 月
  60. FROM EMP;
  61. --16,两个日期相差的月数
  62. SELECT (SYSDATE-HIREDATE)/30 方式一,
  63. MONTHS_BETWEEN(SYSDATE,HIREDATE) 方式二
  64. FROM EMP;
  65. --17,在指定日期上加上若干月
  66. SELECT ADD_MONTHS(SYSDATE,1) 下个月,
  67. ADD_MONTHS(SYSDATE,123) "123个月后"
  68. FROM DUAL;
  69. --18,某个日期当月的最后一天
  70. SELECT LAST_DAY(SYSDATE)
  71. FROM DUAL;
  72. --19,下周六
  73. SELECT NEXT_DAY(SYSDATE,'星期五')
  74. FROM DUAL;
  75. --20,对日期进行四舍五入
  76. SELECT ROUND(SYSDATE,'MONTH') 月,
  77. ROUND(SYSDATE,'YEAR')
  78. FROM DUAL;
  79. --21,对日期进行截断
  80. SELECT TRUNC(SYSDATE,'MONTH') 月,
  81. ROUND(SYSDATE,'YEAR')
  82. FROM DUAL;
  83. --22,日期格式
  84. SELECT *
  85. FROM EMP
  86. WHERE HIREDATE =
  87. TO_DATE('1982-01-23','YYYY-MM-DD');
  88. --23,以指定格式当前日期
  89. SELECT TO_CHAR(SYSDATE,
  90. 'YYYY-MM-DD HH24:MI:SS"今天是"DAY')
  91. FROM DUAL;
  92. --24,查询员工信息,显示员工的编号,姓名,月薪,
  93. --要求有货币代码(L),千位符(,),小数点
  94. SELECT EMPNO,ENAME,
  95. TO_CHAR(SAL,'L9,999.99')
  96. FROM EMP;
  97. --25,NVL(EXP1,EXP2):当exp1为空时,返回exp2
  98. --NUL2(EXP1,EXP2,EXP3):当exp1有值,返回exp2;
  99. --否则返回exp3
  100. SELECT ENAME,SAL*12+NVL2(COMM,COMM,0) 年收入
  101. FROM EMP;
  102. --26,NULLIF(EXP1,EXP2),如果exp1=exp2,返回null
  103. --否则exp1
  104. SELECT NULLIF('ABC','ABC'),NULLIF('A','AG')
  105. FROM DUAL;
  106. --27,找到参数列表中,第一个不为空的值
  107. SELECT ENAME,COMM,SAL,COALESCE(COMM,SAL)
  108. FROM EMP;
  109. --28,给员工涨工资,根据职位涨,总裁涨1000,
  110. --经理涨600,其他员工涨400
  111. SELECT ENAME,JOB,SAL 涨前工资,
  112. CASE JOB
  113. WHEN 'PRESIDENT' THEN SAL + 1000
  114. WHEN 'MANAGER' THEN SAL + 600
  115. ELSE SAL + 400
  116. END
  117. 涨后工资
  118. FROM EMP;
  119. --
  120. SELECT ENAME,JOB,SAL 涨前工资,
  121. DECODE(JOB,'PRESIDENT',SAL + 1000,
  122. 'MANAGER',SAL + 600, SAL + 400) 涨后工资
  123. FROM EMP;
  124. --转换函数(Conversion Functions)
  125. --转换函数将指定字符从一种类型转换为另一种
  126. --通常这类函数遵循如下惯例:函数名称后面
  127. --跟着转换类型以及输出类型。
  128. --29,TO_CHAR(C):将NCHAR,NVARCHAR2,CLOB,NCLOB
  129. --类型转换为CHAR类型
  130. SELECT TO_CHAR('AABBCC')
  131. FROM DUAL;
  132. --30,TO_CHAR(D[,FMT]):将指定的时间(DATE,TIMESTAMP,
  133. --TIMESTAMP WITH TIME ZONE)按照指定格式转换为
  134. --VARCHAR2类型。
  135. SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')
  136. FROM DUAL;
  137. --31,TO_CHAR(N,[,FMT])将指定数值n按照指定格式fmt
  138. --转换为varchar2类型并返回
  139. SELECT TO_CHAR(-100,'L999G99D99MI')
  140. FROM DUAL;
  141. --32,TO_DATE(C[,FMT[,NLS]])将char,nchar,
  142. --varchar2,nvarchar2转换为日期类型,如果fmt
  143. --参数不为空,则按照fmt中指定格式进行转换。
  144. --注意这里的fmt参数,如果ftm为’J‘,则表示按照公元制
  145. --(Julian day)转换,c则必须为大于0并小于5373484
  146. --的正整数。为什么公元制的化,c的值必须不大于5373484
  147. --呢?因为Oracle的DATE类型的取值范围是公元前
  148. --4712年1月1日至公元9999年12月31日。
  149. SELECT TO_DATE(2454334,'J')
  150. FROM DUAL;
  151. --33,TO_NUMBER(C,[,FMT[,NLS]])将char,nchar,
  152. --varchar2,nvarchar2型字符串按照fmt中指定格式
  153. --转换为数值类型并返回。
  154. SELECT TO_NUMBER('-100.00','9G999D99')
  155. FROM DUAL;
  156. --34,DECODE(EXP,S1,R1,S2,R2,R[,DEF])可以
  157. --把它理解成一个增强型的if else,只不过它
  158. --并不通过多行语句,而是在一个函数内部实现if
  159. --else的功能。exp作为初始参数,s作为对比值,
  160. --相同则返回r,如果s有多个,则持续遍历所有s,
  161. --知道某个条件为真为止,否则返回默认值def(
  162. --如果指定了的话),如果没有默认值,并且前面
  163. --的对比也都没有为真,则返回空。毫无疑问,
  164. --decode是个非常重要的函数,在实现行转列等功能是,
  165. --都会用到。
  166. SELECT DECODE('a2','a1','true1','a2','true2',
  167. 'default')
  168. FROM DUAL;
  169. --35,GREATEST(N1,N2,...N)返回序列中的最大值
  170. SELECT GREATEST(14,3,5,3)
  171. FROM DUAL;
  172. --36,LEAST(N1,N2,...N)返回序列中最小值
  173. SELECT LEAST(12,3,5,5)
  174. FROM DUAL;
  175. --37,NULLIF(C1,C2)逻辑等于CASE WHEN C1 = C2
  176. --THEN NULL ELSE C1 END
  177. SELECT NULLIF('A','B'),NULLIF('A','A')
  178. FROM DUAL;
  179. --38,NVL(C1,C2)逻辑等价于IF C1 IS NULL THEN
  180. --C2 ELSE C1 END,C1,C2可以是任何类型,如果两者
  181. --类型不同,则oracle会自动将c2转换为c1的类型
  182. SELECT NVL(NULL,'12')
  183. FROM DUAL;
  184. --39,NVL2(C1,C2,C3)如果c1非空则返回c2,如果c1为
  185. --空则返回c3
  186. SELECT NVL2('A','B','C') ,
  187. NVL2(NULL,'B','C')
  188. FROM DUAL;
  189. --40,SYS_CONNECT_BY_PATH(COL,C)该函数只能应用于
  190. --树状查询,返回通过c1连接的从根节点的路径,该
  191. --函数必须与connect by子句共同使用

Oracle基础函数的更多相关文章

  1. oracle基础函数--decode

    含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN R ...

  2. SQL操作数据——SQL组成,查询基础语法,where,Oracle常用函数等

    SQL组成 DML数据操作语言 DCL数据控制语言 DQL数据查询语言 DDL数据定义语言 查询基础语法 记录筛选 where 子句 记录筛选 where 子句 实例练习 实例练习 Select语句中 ...

  3. Oracle分析函数——函数列表

    --------------聚合函数 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算 ...

  4. 【转】【CUBE】Oracle分组函数之CUBE魅力

    http://blog.itpub.net/519536/viewspace-610997/ Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手.  关于ROLLUP的查 ...

  5. (2.16)Mysql之SQL基础——函数

    (2.16)Mysql之SQL基础——函数 关键词:mysql函数,mysql自定义函数,mysql聚合函数,mysql字符串函数,mysql数值函数 1.自定义函数 -- (1)一般形式 creat ...

  6. Oracle基础了解

    数据库: 关系型数据库 select * from 表名 非关系型数据库(做不到复杂查询) 以对象的形式进行存储 {"aaa":"ccc"}---键值对 ora ...

  7. Oracle分组函数之CUBE魅力

    Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手. 关于ROLLUP的查询统计功能请参考文章<Oracle分组函数之ROLLUP魅力>(http://www ...

  8. Oracle基础篇--00引言

    今天开始,复习oracle基础.主要是以前培训的时候的文档作为结构来梳理知识点,主要目的是把Oracle基础打的扎实点.后面要转做后台开发,或者工作中需要用到数据库知识时也不至于临时抱佛脚. 一直以来 ...

  9. Oracle基础学习笔记

    Oracle基础学习笔记 最近找到一份实习工作,有点头疼的是,有阶段性考核,这...,实际想想看,大学期间只学过数据库原理,并没有针对某一数据库管理系统而系统的学习,这正好是一个机会,于是乎用了三天时 ...

随机推荐

  1. Mac 用户组:staff、 wheel、admin 的区别

    所有的用户都属于 staff 组, 只有具有管理员性质的用户位于 wheel 组中. wheel 是一个特殊的用户组,该组的用户可以使用 su 切换到 root,而 staff 组是所有普通用户的集合 ...

  2. WPF:依赖属性的应用

    依赖属性与一般属性相比,提供了对资源引用.样式.动画.数据绑定.属性值继承.元数据重载以及WPF设计器的继承支持功能的支持. 下面的这个Demo来自<葵花宝典--WPF自学手册>. 1.M ...

  3. 请求WebMethod, Ajax 处理更加专注

    在WebForm下 开发ajax程序,需要借助于一般处理程序(*.ashx)或web服务(*.asmx),并且每一个ajax请求,都要建一个这样的文件,如此一来,如 果在一个项目中ajax程序多了,势 ...

  4. 五款最佳Linux下载管理器推荐

    导读 新的Linux用户从Windows转换过来时面临的困难之一就是,找到一款优秀的下载管理器.如果你是或曾经是Windows用户,可能熟悉互联网下载管理器(IDM).下载加速器Plus(DAP)之类 ...

  5. 使用json存储结构化数据

    从文件中读写字符串很容易.数值就要多费点儿周折,因为read ()方法只会返回字符串,应将其传入int()这样的函数,就可以将'123'这样的字符串转换为对应的数值 123.当你想要保存更为复杂的数据 ...

  6. Windows系统使用putty远程连接DigitalOcean创建的Linux系统(CentOS6.7为例)

    大部分vps提供网站都会在网站上提供一个控制台界面,方便操作远程vps.但是使用起来特别不方便,尤其在一个神奇的国家,打开国外网站都困难,何况还要在网站上不断的操作.这一教程记录如何在Windows系 ...

  7. ClearCanvas DICOM 开发系列 一

    概述 C#开源的DICOM server.支持影像处理.影像归档.影像管理.影像传输和影像浏览功能.开源代码可学习地方很多. 官方网站:http://www.clearcanvas.ca buildi ...

  8. Hello 2016

    Hello 2016 I am really happy to work and study here. Nothing is better than be oneself ! It's import ...

  9. Apache Thrift 服务开发框架学习记录

    Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架. 前言: 目前流行的服务调用方式有很多种,例如基于 SOAP 消息格式的 Web Servic ...

  10. 2.1---删除链表中重复元素(CC150)

    分成两种,1种开了额外空间,临时缓冲区,一种没有开 import java.util.HashSet; import java.util.Set; class ListNode{ int data; ...