在oracle中截取字符串,Oracle中截取字符串

Oracle中截取字符串

关于Oracle里面的一些小函数

要求:A.数据库表中的一个字符串  可能含有"+" 例:ORC+001

也可能不含“+”

B.要求如果该字符串含有“+”,则取“+”之前的字符 例:ORC+001 取ORC

C.如果该字符串不含"+",则直接取该字符串。

解答:利用ORACLE中 INSTR,SUBSTR以及CASE WHEN语法即可实现。

Oracle中函数

INSTR:INSTR方法的格式为

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

默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。

例:Select INSTR('ORC+001','+',1,1) from dual

返回的是"4" 如果该字符串没有匹配字符 返回的是“0”。

SUBSTR:取子字符串 取子字符串

SUBSTR(源字符串,起始位置,要取多少位)

从“起始位置”开始,取“多少"个

例 Select SUBSTR('ORC+001',1,3) from dual;

返回的是“ORC”

全例如下:

表T_RCV_ISSUE

WH_CD字段

取 WH_CD 如果该字段包含"+",取“+”之前的字符

如果该字段没有"+",取整个字段

T_RCV_ISSUE表

WH_CD 分别为 MR-PS+007,MR-WS,MR-WS+001,MR-PS

执行

SELECT CASE

WHEN INSTR(WH_CD, '+', 1, 1) > 0

THEN SUBSTR(WH_CD, 1, INSTR(WH_CD, '+', 1, 1) - 1)

ELSE WH_CD

END AS WH_CD

from   T_RCV_ISSUE

结果:MR-PS,MR-WS,MR-WS,MR-PS

相关文档:

有的情况下,我们需要用递归的方法整理数据,这才程序中很容易做到,但是在数据库中,用SQL语句怎么实现?下面我以最典型的树形结构来说明下如何在Oracle使用递归查询。

为了说明方便,创建一张数据库表,用于存储一个简单的树形结构

Sql代码

create table TEST_TREE

( &n ......

Access、SQLServer、Oracle常见SQL语句应用区别

关劲松 PMP

如果要兼容Access、SQL Server、Oracle三个数据库版本;我们在编写SQL语句的过程中,尽量使用一些通用的语句,但还是有些方面有些区别避免不了,现简单总结一下。

以下A代表Access,S代表SQL Server,O代表Oracle

1、取当前系统时间

A:Select Now()

S:Selec ......

Oracle数组一般可以分为固定数组和可变数组

固定数组

Sql代码

declare

type v_ar is varray(10) of varchar2(30);

my_ar v_ar:=v_ar('g','m','d','龚','帅');

begin

for ......

首先需要的软件有:

1、

linux_11gR1_database.zip

//可在Oracle的

官方网站

下载得到,有1.71GB够大吧。

2、  别忘了准备一份Oracle的官方帮助文档

,是最权威的。

3、

CentOS-5.2-i386-bin-DVD.iso

//可在CentOS

官方网站

下载得到,� ......

相信大家看了这篇文章对Oracle如何工作有一个形象的了解!

摘自----《Oracle备份与恢复》

-----------------------------------------------------------------------------------------------------------------

一个名叫Sid的男人,狂热地爱好拍摄、保存和整理照片。Sid的妻子名叫Debbie,他们有三个儿子Logan、Archie ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值