文档章节

oracle自带的一些基本的常用的函数

maskleo
 maskleo
发布于 2015/04/20 10:48
字数 1031
阅读 7
收藏 1

1.TO_DATE(字符串,日期格式)

oracle自带函数 将字符串转化成日期处理

直接传入的util.date会,有可能与数据库的sql.date不匹配而报错

例如:SELECT TO_DATE('2008-8-8','yyyy-MM-dd') FROM DUAL;

2. NVL(字段,默认值)

oracle自带函数 当前一个字段为空可以设置一个默认的值

当数字类型时有效的避免了将空赋值而报错

SELECT NVL(COUNT(*),0) FROM EMP;

 

3.SUBSTR(字符串,截取开始位置,截取长度)

ORACLE自带函数//返回截取的字

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

substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符

substr('Hello World',2,4) //返回结果为 'ello'

substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符

测试:

select substr('Hello World',-3,3) value from dual;

4.INSTR (源字符串, 目标字符串, 起始位置, 匹配序号)

ORACLE自带函数//instr函数返回要截取的字符串在源字符串中的位置
例:SELECT INSTR('A-B-C-D-E-F','-',3,3) FROM DUAL; 查找从第三个开始的第三个'-'返回的是8即D后面一个'-'

 

Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始

  到字符的结尾就结束。

  语法如下:

  instr( string1, string2 [, start_position [, nth_appearance ] ] )

  参数分析:

  string1

  源字符串,要在此字符串中查找。

  string2

  要在string1中查找的字符串.

  start_position

  代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。

  nth_appearance

  代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。

  注意:

  如果String2在String1中没有找到,instr函数返回0.

  示例:

  SELECT instr('syranmo','s') FROM dual; -- 返回 1

  SELECT instr('syranmo','ra') FROM dual; -- 返回 3

  1 SELECT instr('syran mo','a',1,2) FROM dual; -- 返回 0

  (根据条件,由于a只出现一次,第四个参数2,就是说第2次出现a的位置,显然第2次是没有再出现了,所以结果返回0。注意空格也算一个字符!)

  SELECT instr('syranmo','an',-1,1) FROM dual; -- 返回 4

  (就算是由右到左数,索引的位置还是要看‘an’的左边第一个字母的位置,所以这里返回4)

  SELECT instr('abc','d') FROM dual; -- 返回 0

  注:也可利用此函数来检查String1中是否包含String2,如果返回0表示不包含,否则表示包含。

  对于上面说到的,我们可以这样运用instr函数。请看下面示例:

  如果我有一份资料,上面都是一些员工的工号(字段:CODE),可是我现在要查询出他们的所有员工情况,例如名字,部门,职业等等,这里举例是两个员工,工号分别是’A10001′,’A10002′,其中假设staff是员工表,那正常的做法就如下:

  1 2 SELECT code , name , dept, occupation FROM staff WHERE code IN ('A10001','A10002');

  或者:

  SELECT code , name , dept, occupation FROM staff WHERE code = 'A10001' OR code = 'A10002';

  有时候员工比较多,我们对于那个’觉得比较麻烦,于是就想,可以一次性导出来么?这时候你就可以用instr函数,如下:

  SELECT code , name , dept, occupation FROM staff WHERE instr('A10001,A10002',code)>0;

  查询出来结果一样,这样前后只用到两次单引号,相对方便点。

  还有一个用法,如下:

  SELECT code, name, dept, occupation FROM staff WHERE instr(code, '001') > 0;

  等同于

  SELECT code, name, dept, occupation FROM staff WHERE code LIKE '%001%' ;

5.ROUND(TO_NUMBER(时间1-时间2)*24*60*60)

 

计算2个时间的时间差,秒做单位

待补充。。。。。。

 

本文转载自:http://bughope.iteye.com/blog/2017780

共有 人打赏支持
maskleo
粉丝 17
博文 128
码字总数 17344
作品 0
深圳
程序员
私信 提问
jfinal数据库操作Db.update的小BUG

jfinal中的Db.update()很好用,直接调用insert,update,delete,create等操作及其方便,然而在使用中也存在一些BUG,这里提一下,希望波波可以考虑改进: 使用数据自带的函数或特性将报无效数字...

ohaozy
2015/04/28
4.7K
3
Lua基本语法-书写规范以及自带常用函数

Lua基本语法-书写规范和常用函数 1 String Operation —— 字符串操作 Lua 中自带了一些操作字符串的函数 输出后: 2 Table —— 表 Lua 中表 { } 的创建方式和赋值 输出后: 3 Table Operat...

chianr
2017/12/22
0
0
PHP实现DataGrid

最近想做一个通过PHP实现DataGrid功能的东西,这样可以直接修改数据库中表的内容,而不用开发【新增数据页面】,【编辑页面】,于是乎在网上找了找,类似的东西也有几个,开源的、付费的都有...

junwong
2012/03/09
384
2
ArcGIS SED10.2 + Oracle10g 空间数据连接方式

ArcGIS SED10.2 + Oracle10g 空间数据连接方式 主要有两种: 一、通过ArcSDE自带的方式连接Oracle; 二、通过ArcSDE直连的方式连接Oracle。 1、通过ArcSDE自带的方式连接Oracle时,会出现错误...

sinat_34719507
2016/12/17
0
0
如何用MathType编辑反三角函数

在使用文档写数学类的文章时候,常常会涉及到一些数学公式,由于数学公式中包含了很多的数学符号,如果使用文档自带的公式编辑器往往会发现很多的符号都不全或者不符合自己的要求。这个时候就...

学术研究软件
2016/06/29
31
0

没有更多内容

加载失败,请刷新页面

加载更多

csapp 习题 - 如何实现异或 exclusive-or

阅读 csapp v3 时,练习题 2.13 很有意思。练习题描述如下。 位设置是对于参数 mask 中每一个为 1 的位,那么参数 x 中相应位则被设置为 1 ;位清除是对于参数 mask 中每一个为 1 的位,那么...

ylme
昨天
0
0
Amino——产品迭代

兴趣部落产品迭代 时间 版本号 更新内容 备注 2019年1月2日 v3.1.1 支持定制部落首页的内容tab,酋长可以将精华、相册、分类添加到部落首页啦。 支持申请酋长,酋长可以直接推送优质话题,快...

铸剑为犁413
昨天
0
0
IntelliJ IDEA 安装 Scala 插件

本页面中对在 IntelliJ 中安装 Scala 插件的步骤和方法进行了描述。 需要在 IntelliJ 安装 Scala 插件,你首先需要在你的计算机中安装 IntelliJ 。IntelliJ 的安装比较简单,一般按照步骤安装...

honeymose
昨天
0
0
JavaScript继承(二)——借用构造函数

JavaScript继承(一)——原型链中提出原型链继承的两个问题:一是原型的数据共享问题,二是创建子类型的实例时,不能向父类型的构造函数中传递参数。这两个问题的根源还是在于使用原型模式创...

Bob2100
昨天
1
0
day25:比较两个文件内容|杀进程|并发备份数据库|并发进程备份mysql库|监控全国CDN网站节点|

1、有两个文件 a.txt 和 b.txt,把 a.txt 中有的但 b.txt 中没有的行找出来,并写入列 c.txt,然后计算 c 的行数; 注释:比较两个文件两个文件不同,可以用的方法:diff md5sum grep -vf $1 $...

芬野de博客
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部