EBS_SQL_技巧:截断

一:理论

oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用

常用函数:substr和instr

1.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串

解释:

string 元字符串

start_position 开始位置(从0开始)

length 可选项,子字符串的个数

For example:

substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符

substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符

substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符

substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。

substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。

2.INSTR(string,subString,position,ocurrence)查找字符串位置

解释:

string:源字符串

subString:要查找的子字符串

position:查找的开始位置

ocurrence:源字符串中第几次出现的子字符串

For example:

INSTR(‘CORPORATE FLOOR‘,‘OR‘, 3, 2)中,源字符串为‘CORPORATE FLOOR‘, 目标字符串为‘OR‘,起始位置为3,取第2个匹配项的位置;返回结果为 14 ‘

二:实际测试

select substr(‘OR:com.lcs.wc.placeholder.Placeholder:860825‘,INSTR(‘OR:com.lcs.wc.placeholder.Placeholder:860825‘,‘:‘, 1, 2)+1,length(‘OR:com.lcs.wc.placeholder.Placeholder:860825‘))

,INSTR(‘OR:com.lcs.wc.placeholder.Placeholder:860825‘,‘:‘, 1, 2),

length(‘OR:com.lcs.wc.placeholder.Placeholder:860825‘) From dual;

CREATE TABLE test (name VARCHAR2 (32));

insert into test values(‘CA-CA1344-A-11OCT141250-D‘);

insert into test values(‘JD-JD693-A-11OCT141105-D‘);

方法1:

select substr(name,instr(name,‘-‘,1)+1,instr(name,‘-‘,instr(name,‘-‘,1)+1)-instr(name,‘-‘,1)-1) from test;

方法2:

select substr(name,instr(name,‘-‘,1,1)+1,instr(name,‘-‘,1,2)-1-instr(name,‘-‘,1,1)) from test;

接下我们再写一下,取第二个"-"到第三个"-"之间的字符串的方法:

select substr(name,instr(name,‘-‘,2,2)+1,instr(name,‘-‘,2,3)-1-instr(name,‘-‘,2,2)) from test;

时间: 2024-10-26 01:17:18

EBS_SQL_技巧:截断的相关文章

UWP开发入门(九)——简单界面的布局技巧及屏幕适应

嘿嘿嘿,题目比较绕哈.本篇主要讨论一般情况下,页面的布局技巧,怎么将元素的展现尽量做到分辨率无关.基本的思路仍然是尽量少的标定具体的数字,而是用比列来标注各元素占据的空间. 这里我打算用易信的名片页来举例: Phone的界面看起来不错,大致以纵向排列.最上方是标题栏,头像部分居中,下面的文字以列表形式靠左对齐,最下部为留白.考虑到标题栏需要锚定在顶部,不参与比例分配.头像,文字和留白的占比大致为2.5:4:3.XAML中的Grid定义如下: <Grid.RowDefinitions> <

经典收藏 50个jQuery Mobile开发技巧集萃

1.Backbone移动实例 这是在Safari中运行的一款Backbone移动应用程序.想开始体验移动开发,一个好的出发点就是关注这个应用程序的构建方式.先不妨在你的浏览器中查看该应用程序. 相关链接:http://bennolan.com/2010/11/24/backbone-jquery-demo.html 2.使用媒体查询来锁定设备 你可能会问如何使用CSS来锁定设备(根据屏幕尺寸).比如说,你想要为iPad设计两列布局.为智能手机设计单列布局.要做到这一点,最佳办法就是使用媒体查询.

简单实用的CSS网页布局中文排版技巧

由于汉字的特殊性,在css网页布局中,中文排版有别于英文排版.排版是一个麻烦的问题,小编认为,作为一个优秀的网页设计师和网页制作人员,掌握一些简单的中文排版技巧是不可或缺的,所以今天特意总结了几个简单实用的技巧,希望对大家有所帮助. 一.如何设定文字字体.颜色.大小等 font-style设定斜体,比如font-style:italic font-weight设定文字粗细,比如font-weight:bold font-size设定文字大小,比如font-size:12px line-heigh

Linux -高阶命令行技巧

熟练地操作命令行是一项常常被我们忽视的技能,又或者说我们将它看的太过神秘.不过作为一名软件工程师,掌握这一技能可以很大程度上提升我们工作的灵活性,提高工作效率.这篇文章是我在与 Linux 打交道的过程中总结出的一些小技巧.有些很基础,有些也相当专业,不太好懂.这篇文章不长,不过如果你能在工作中充分使用这里介绍的技能的话,那你也知之甚多了. 这里的许多内容一开始已出现在 Quora,但考虑到 Github 的用户性质,他们比我有天赋而且可以随时提出改进意见,因此使用 Github 更合适.如果你

12个非常有用的javascript技巧,必看!

提示:该文章是整理别人别人的文章,作者比较多,很难分辨原创作者是谁. 1)使用!!将变量转换成布尔类型 有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将他们的值视为true.对于这样的检查,你可以使用!!(双重否定运算符),他能自动将任何类型的数据转化为布尔值,只有0.null."".undefined或NaN才会返回false,其他的都会返回true.看一个简单的例子: function Account(cash){ this.cash = cash; this.ha

Oracle取时间一些技巧

TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年                显示值:07        yyy three digits 三位年                显示值:007        yyyy four digits 四位年                显示值:2007                    Month:             

Django -- URLconf 配置技巧

本章我们将对视图和URL配置使用一些高超的小技巧. [流线型化函数导入(streamlining)] 方法一:传统方法 from django.conf.urls.defaults import * from mysite.views import hello, current_datetime, hours_ahead urlpatterns = patterns('',     (r'^hello/$', hello),     (r'^time/$', current_datetime),

PHP任意文件包含绕过截断新姿势

前言 此方法是@l3m0n叔叔给我分享的,原文已经发布在90sec 我没有90sec的账号,所以自己实践一下,顺道安利给访问我博客的小伙伴. 适用情况 可以控制协议的情况下,如果%00无法截断包含,可使用这招. <?php $a = $_GET['file']; include $a.'.html.php'; 思路&方法 思路主要是利用了PHP的一个流封装的特性,可以参考PHP官方文档中的Example #3 假设存在文件包含的代码为: <?php $a = $_GET['file']

Linux学习之常用技巧

▌基础 学习 Bash .你可以man bash来看看bash的东西,并不复杂也并不长.你用别的shell也行,但是bash是很强大的并且也是系统默认的.(学习zsh或tsch只会让你在很多情况下受到限制) 学习 vim .在Linux下,基本没有什么可与之竞争的编译辑器(就算你是一个Emacs或Eclipse的重度用户).你可以看看<简明vim攻略>和 <Vim的冒险游戏>以及<给程序员的Vim速查卡>还有<把Vim变成一个编程的IDE>等等. 了解 ss