文档章节

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
粉丝 18
博文 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

没有更多内容

加载失败,请刷新页面

加载更多

八、RabbitMQ的集群原理

集群架构 写在前面 RabbitMQ集群是按照低延迟环境设计的,千万不要跨越WAN或者互联网来搭建RabbitMQ集群。如果一定要在高延迟环境下使用RabbitMQ集群,可以参考使用Shovel和Federation工具。...

XuePeng77
今天
1
0
mac系统下,brew 安装mysql,用终端可以连接,navicat却连接不上?

问题: 1.报错? 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found 2.自己通过设置,已经把密......

写bug的攻城狮
昨天
2
0
老生常谈,HashMap的死循环

问题 最近的几次面试中,我都问了是否了解HashMap在并发使用时可能发生死循环,导致cpu100%,结果让我很意外,都表示不知道有这样的问题,让我意外的是面试者的工作年限都不短。 由于HashMap...

群星纪元
昨天
5
0
拉普拉斯算子

拉普拉斯算子是二阶微分算子。 我们知道,一维离散信号一阶微分公式如下: 相应的,一维离散信号二阶微分公式如下: 由于图像有x和y两个方向,因此图像信号属于二维离散信号。其在x,y两个...

yepanl
昨天
3
0
记录"正则表达式"

详细请查看我的博客:https://blog.enjoytoshare.club/article/RegularExpression.html 1 写在前面 正则表达式(Regular Expression)在代码中常常简写为regex。正则表达式通常被用来检索、替...

wugenqiang
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部