Oracle 一些函数的使用

nvl 函数

通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值

selectnvl(sum(t.dwxhl),1)fromtb_jhdetwherezydm=-1

这里关心的nvl的用法,nvl(arg,value)代表如果前面的arg的值为null那么返回的值为后面的value

ESCAPE

escape关键字经常用于使某些特殊字符,如通配符:‘%’,‘——’转义为他们原来的字符的意义,被定义的转义字符通常使用‘\’,但是有时候也可以使用其他符号。

转义字符为d,没有实现转义功能;

SQL>select*fromtestwheretestlike‘sddd_%‘escape‘d‘;

查找包含所有‘_‘的字段。

SQL>select*fromtestwheretestlike‘%\_%‘escape‘\‘;

 连接字符串 concat || 

--concat只能连接两个字符串,连接多个需要嵌套调用不方便
SQL>selectconcat(‘aa‘,‘bb‘)fromdual;

CONCAT(‘AA‘,‘BB‘)
-----------------
aabb
--||直接连接多个字符串
SQL>select‘aa‘||‘bb‘||‘cc‘fromdual;

‘AA‘||‘BB‘||‘CC‘
----------------
aabbcc
 

字符串截取 

substr(字符串,截取开始位置,截取长度) //返回截取的字

substr(‘HelloWorld‘,0,1)//返回结果为‘H‘*从字符串第一个字符开始截取长度为1的字符串

长度计算函数 length()与lengthb()

SQL>selectlength(‘新春快乐‘)fromdual;
LENGTH(‘新春快乐‘)
------------------

SQL>selectlengthb(‘新春快乐‘)fromdual;
LENGTHB(‘新春快乐‘)
-------------------

区别:length求得是字符长度,
 lengthb求得是字节长度。 ?

INSTR函数

-- 在指定的字符串中检索指定字符所在的索引位置

SQL>selectinstr(‘hello‘,‘l‘)fromdual;
INSTR(‘HELLO‘,‘L‘)
------------------

在hellowolrd中截取出来world字符串?
SQL>selectsubstr(‘helloworld‘,instr(‘helloworld‘,‘‘))fromdual;

SUBSTR
------
world

已选择1行。

SQL>selectsubstr(‘helloworld‘,instr(‘helloworld‘,‘‘)+1)fromdual;

SUBST
-----
world

已选择1行。

lpad() rpad()

参数1:指定原始的串 参数2:固定长度 参数3:填充的字符 

SQL>selectlpad(‘jack‘,10,‘$‘)fromdual;

LPAD(‘JACK‘,10,‘$‘)

----------

$$$$$$jack

selectrpad(‘jack‘,10,‘$‘)fromdual;

-----------

jack$$$$$$

 

 Next_day

计算出来下一个星期一是几号?

selectnext_day(sysdate,‘星期一‘)fromdual;

round 四舍五入

NVL (expr1, expr2):

    expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致 
NVL2 (expr1, expr2, expr3) :

xpr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型 
NULLIF (expr1, expr2):

    相等返回NULL,不等返回expr1

decode()

    主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明);

使用方法:

Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

From talbename

Where …

其中columnname为要选择的table中所定义的column,

·含义解释:

decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)的理解如下:

if(条件==值1)

then

return(翻译值1)

elsif(条件==值2)

then

return(翻译值2)

......

elsif(条件==值n)

then

return(翻译值n)

else

return(缺省值)

endif

注:其中缺省值可以是你要选择的column name 本身,也可以是你想定义的其他值,比如Other等;

表复制快速的建立的表结构?

    create table emp10 as select * from emp where 1=12;

    insert into emp30 select * from emp where deptno=30;
时间: 2024-10-08 18:22:47

Oracle 一些函数的使用的相关文章

数据库编程1 Oracle 过滤 函数 分组 外连接 自连接

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> 数据库编程1 Oracle 过滤 函数 分组 外连接 自连接 本文实验基于的数据表: winsows安装好Oracle11g之后,开始实验 SQLplus 登陆 ORacle sqlplus 退出的方式 查看用户之下有什么表 查看表的所有记录,不区分大小写 设置SQLplus行宽,页宽,列宽: 清屏命令 select as 语法 1,as别名的使用 2,没有引号带有空格的别名,无法识别: 3,带有

数据库编程2 Oracle 过滤 函数 分组 外连接 自连接

[本文谢绝转载原文来自http://990487026.blog.51cto.com] 续:数据库编程1 Oracle 过滤 函数 分组 外连接 自连接 where like模糊查询,查询员工姓名是4个字母 SQL> select * from emp where ename like '____';      EMPNO ENAME                JOB                       MGR HIREDATE          SAL       COMM    

Oracle trunc()函数的用法

--Oracle trunc()函数的用法 /**************日期  TRUNC()函数没有秒的精确 ********************/ select sysdate from dual --当时日期 select trunc(sysdate) from dual select trunc(sysdate ,'DD') from dual --今天日期 select trunc(sysdate,'d')+7 from dual --本周星期日 select trunc(sys

Oracle常用函数

前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使用: 往emp表中插入一条记录: SQL> insert into emp values(1234,'LIZELU','BOSS',1234,'1980-12-06',10000.0,0,30); insert into emp values(1234,'LIZELU','BOSS',1234,'1

oracle 时间函数

加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from dual; --加1月 select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期 select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from

Oracle to_date()函数的用法《转载》

to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明, 原文地址:http://database.51cto.com/art/201010/231193.htm 在Oracle数据库中,Oracle to_date()函数是我们经常使用的函数,下面就为您详细介绍Oracle to_date()函数的用法,希望可以对您有所启迪. to_date()与24小时制表示法及mm分钟的显示: 一.在使用Oracle的to_date

Oracle单行函数笔记

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

转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数

关于处理小数点位数的几个oracle函数() 1. 取四舍五入的几位小数 select round(1.2345, 3) from dual; 结果:1.235 2. 保留两位小数,只舍 select trunc(1.2345, 2) from dual; 结果:1.23 select trunc(1.2399, 2) from dual; 结果:1.23 3.取整数 返回大于或等于x的最大整数: SQL> select ceil(23.33) from dual; 结果: 24 返回等于或小于

oracle管道函数的用法

oracle管道函数是一类特殊的函数,oracle管道函数返回值类型必须为集合,下面将介绍oracle管道函数的语法. 在普通的函数中,使用dbms_output输出的信息,需要在服务器执行完整个函数后一次性的返回给客户端.如果需要在客户端实时的输出函数执行过程中的一些信息,在oracle9i以后可以使用管道函数(pipeline function). 关键字PIPELINED表明这是一个oracle管道函数,oracle管道函数的返回值类型必须为集合,在函数中,PIPE ROW语句被用来返回该

[转]Oracle trunc()函数的用法

原文地址:http://www.cnblogs.com/gengaixue/archive/2012/11/21/2781037.html 1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值. 其具体的语法格式如下: TRUNC(date[,fmt]) 其中: date 一个日期值 fmt 日期格式,该日期将由指定的元素格式所截去.忽略它则由最近的日期截去 下面是该函数的使用情况: TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mo