当前位置:  数据库>oracle

Oracle单行函数

    来源: 互联网  发布时间:2017-05-31

    本文导语: SQL> --字符函数SQL> select lower('hellO WORld') 转小写,upper('hellO WORld') 转大写,initcap('hello world') 首字母大写  2  from dual; 转小写      转大写      首字母大写                                              ----------- ----------- -------...

SQL> --字符函数
SQL> select lower('hellO WORld') 转小写,upper('hellO WORld') 转大写,initcap('hello world') 首字母大写
  2  from dual;

转小写      转大写      首字母大写                                             
----------- ----------- -----------                                           
hello world HELLO WORLD Hello World                                           

SQL> --substr(a,b) 从a中,第b位开始取,取右边所有的字符
SQL> select substr('Hello World',4) 截取结果 from dual;
SQL> --substr(a,b,c) 从a中,第b位开始取,取c位
SQL> select substr('Hello World',4,4)  from dual;

SQL> --length 字符数 lengthb 字节数
SQL> select length('Hello World中国') 字符数, lengthb('Hello World中国') 字节数
  2  from dual;
SQL> --instr 在母串中查找子串,找到返回下标(从1开始),否则返回0
SQL> select instr('Hello World','ll')  from dual;

INSTR('HELLOWORLD','LL')                                                       
------------------------                                                       
                      3                                                       
SQL> --lpad 左填充  rpad 右填充
SQL> select lpad('abcd',10,'*') 左,rpad('abcd',10,'*') 右
  2  from dual;

左        右                                                                 
---------- ----------                                                         
******abcd abcd******   
SQL> --trim 去掉前后指定的字符
SQL> select trim('H' from 'Hello WorldH') from dual;

TRIM('H'FR                                                                     
----------                                                                     
ello World                                                                     

SQL> select replace('Hello World','l','*') from dual;

REPLACE('HE                                                                   
-----------                                                                   
He**o Wor*d                                   

SQL> --数字函数
SQL> select ROUND(45.926, 2) 一,ROUND(45.926, 1) 二, ROUND(45.926, 0) 三,
  2        ROUND(45.926, -1) 四, ROUND(45.926, -2) 五
  3  from dual;

        一        二        三        四        五                         
---------- ---------- ---------- ---------- ----------                         
    45.93      45.9        46        50          0 
SQL> ed
已写入 file afiedt.buf

  1  select TRUNC(45.926, 2) 一,TRUNC(45.926, 1) 二, TRUNC(45.926, 0) 三,
  2        TRUNC(45.926, -1) 四, TRUNC(45.926, -2) 五
  3* from dual
SQL> /

        一        二        三        四        五                         
---------- ---------- ---------- ---------- ----------                         
    45.92      45.9        45        40          0     

SQL>select MOD(1600,300) from dual;

SQL> --日期函数
SQL> select sysdate from dual;

SYSDATE                                                                       
--------------                                                                 
22-10月-12                                                                     

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY                                                           
-------------------                                                           
2012-10-22 15:39:21                                                           

SQL> select systimestamp from dual;

SYSTIMESTAMP                                                                   
---------------------------------------------------------------------------   
22-10月-12 03.40.05.406000 下午 +08:00 

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY                                                           
-------------------                                                           
2012-10-22 15:40:33                                                           

SQL> select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss*ff') from dual;

TO_CHAR(SYSTIMESTAMP,'YYYY-MM                                                 
-----------------------------                                                 
2012-10-22 15:40:47*218000 
SQL> --systimestamp时间戳

SQL>---------------------------------------------------------------

 

 

SQL> --昨天 今天  明天
SQL> select (sysdate-1) 昨天, sysdate 今天, (sysdate+1) 明天 from dual;

昨天          今天          明天                                             
-------------- -------------- --------------                                   
21-10月-12    22-10月-12    23-10月-12   
SQL> --员工的工龄
SQL> select ename,hiredate,(sysdate-hiredate) 天,(sysdate-hiredate)/7 星期,
  2        (sysdate-hiredate)/30 月,(sysdate-hiredate)/365 年
  3  from emp;

ENAME      HIREDATE              天      星期        月        年         
---------- -------------- ---------- ---------- ---------- ----------         
SMITH      17-12月-80    11632.6571 1661.80815 387.755235 31.8702933         
ALLEN      20-2月 -81    11567.6571 1652.52244 385.588569 31.6922111         
WARD      22-2月 -81    11565.6571 1652.23672 385.521902 31.6867317         
JONES      02-4月 -81    11526.6571 1646.66529 384.221902 31.5798824         
MARTIN    28-9月 -81    11347.6571 1621.09387 378.255235 31.0894714         
BLAKE      01-5月 -81    11497.6571 1642.52244 383.255235 31.5004303         
CLARK      09-6月 -81    11458.6571 1636.95101 381.955235  31.393581         
SCOTT      13-7月 -87    9233.65706 1319.09387 307.788569 25.2976906         
KING      17-11月-81    11297.6571 1613.95101 376.588569 30.9524851         
TURNER    08-9月 -81    11367.6571 1623.95101 378.921902 31.1442659         
ADAMS      13-7月 -87    9233.65706 1319.09387 307.788569 25.2976906         

ENAME      HIREDATE              天      星期        月        年         
---------- -------------- ---------- ---------- ---------- ----------         
JAMES      03-12月-81    11281.6571 1611.66529 376.055235 30.9086495         
FORD      03-12月-81    11281.6571 1611.66529 376.055235 30.9086495         
MILLER    23-1月 -82    11230.6571 1604.37958 374.355235 30.7689235         

已选择14行。
SQL> select hiredate+sysdate from emp;
select hiredate+sysdate from emp
              *
第 1 行出现错误:
ORA-00975: 不允许日期 + 日期
SQL>-- 时间不允许相加

SQL> --last_day 某月的最后一天

SQL> select last_day(sysdate) from dual; 
 
 
SQL> --MONTHS_BETWEEN 计算工龄
SQL> select (sysdate-hiredate)/30 一,MONTHS_BETWEEN(sysdate,hiredate) 二
  2  from emp;

        一        二                                                         
---------- ----------                                                         
387.755329 382.182577                                                         
385.588662 380.085802                                                         
385.521996        380                                                         
384.221996 378.666448                                                         
378.255329 372.827738                                                         
383.255329 377.698706                                                         
381.955329 376.440641                                                         
307.788662 303.311609                                                         
376.588662 371.182577                                                         
378.921996 373.472899                                                         
307.788662 303.311609                                                         

        一        二                                                         
---------- ----------                                                         
376.055329 370.634189                                                         
376.055329 370.634189                                                         
374.355329 368.989028                                                         

已选择14行。
SQL> --114月后
SQL> select add_months(sysdate,114) from dual;
SQL> --从今天开始算(2012.10.22星期一),下一个星期一
SQL> select next_day(sysdate,'星期一') from dual;

NEXT_DAY(SYSDA                                                                 
--------------                                                                 
29-10月-12                                                                     
SQL> --从今天开始算(2012.10.22星期一),下一个星期二
SQL> select next_day(sysdate,'星期二') from dual;

NEXT_DAY(SYSDA                                                                 
--------------                                                                 
23-10月-12   


SQL> --对日期进行四舍五入
SQL> select round(sysdate,'month') 一,round(sysdate,'year') 二 from dual;

SQL> --数据类型转换
SQL> --隐式转换的前提: 被转换对象是可以转换的
SQL> --显式转换
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss"今天是"day') from dual;

SQL> --查询员工的薪水: 货币符号,两位小数,千位符
SQL> select sal, to_char(sal,'L9,999.99') from emp;

 

SQL> --通用函数
SQL> --nvl2(a,b,c) 当a=null时,返回c,否则返回b
SQL> select sal*12+nvl2(comm,comm,0)  from emp;

SQL> --nullif(a,b) 当a=b时,返回null,否则返回a
SQL> select nullif('abc','abc') from dual;
SQL> --COALESCE 从左至右找到第一个不为null的值
SQL> select comm,sal,COALESCE(comm,sal) from emp;


    
 
 

您可能感兴趣的文章:

  • Oracle 系统变量函数介绍
  • Oracle 系统变量函数用法指南
  • Oracle中decode函数的用法
  • Oracle round()函数与trunc()函数区别介绍
  • oracle中lpad函数的用法详解
  • MySQL实现类似Oracle中的decode()函数的功能
  • Oracle函数substr(str1, pos, [len])
  • Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
  • SQL中Charindex和Oracle中对应的函数Instr对比
  • apache通过php的oci函数读取Oracle(字符集ZHS16GBK)时,显示乱码,如何解决?
  • Oracle Max函数使用中出现的问题
  • oracle合并列的函数wm_concat的使用详解
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • c#中oracle to_date函数用法举例
  • Oracle 函数用法之decode
  • Oracle过程与函数的区别分析
  • Oracle层次查询和with函数的使用示例
  • oracle的nvl函数的使用介绍
  • c#中oracle的to_date函数使用方法
  • Oracle中nul()函数
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,