数据库字符串截取——Demo(100;30;20)

原创 2015年11月18日 16:45:10

数据以;为分隔符,数据库数据如下:

;;50

;22;

;14;

30;;

20;;80

20;30;20

需要获取分割符之间的数据,可以使用截取函数substr、位置查找函数instr

1、获取第一个数字

SELECT  a.exe_level, substr(a.exe_level,0,instr(a.exe_level, ';')-1) FROM sel_course a ; ----第一个数


2、获取第二个数

SELECT  a.exe_level, substr(a.exe_level,instr(a.exe_level, ';')+1,instr(a.exe_level, ';',1,2)-instr(a.exe_level, ';')-1) FROM sel_course a ;----第二个数


3、获得第三个数

SELECT  a.exe_level, substr(a.exe_level,instr(a.exe_level, ';',1,2)+1) FROM sel_course a ;----第三个数



函数说明:

    转自http://yedward.net/?id=62

(1)oracle中实现截取字符串:substr

substr(string, start_position, [length])

其中,string是元字符串,start_position为开始位置,length是可选项,表示子字符串的位数。

例子:

substr('ABCDEFG', 0);    -- 返回结果是:ABCDEFG,从0位开始截取后面所有

substr('ABCDEFG', 2);    -- 返回结果是:CDEFG,从2位开始截取后面所有

substr('ABCDEFG', 0, 3);  -- 返回结果是:ABC,从0位开始往后截取3个字符长度

substr('ABCDEFG', 0, 100);  -- 返回结果是:ABCDEFG,虽然100超出了元字符串长度,但是系统会按元字符串最大数量返回,不会影响返回结果

substr('ABCDEFG', -3);  -- 返回结果是:EFG,如果是负数,则从尾部往前数,截取-3位置往后的所有字符串

(2)查找字符串位置:instr

instr(string, subString, [start_position, [nth_appearance]])

其中,string是元字符串;subString是要查找的子字符串;start_position是要查找的开始位置,为可选项(默认为1),注意在这里字符串索引从1开始,如果此参数为正,则从左到右检索,如果此参数为负,则从右到左检索;nth_appearance是元字符串中第几次出现的子字符串,此参数可选,缺省默认为1,如果是负数则系统报错。

例子:

instr('ABCDABCDAEF', 'AB');   -- 返回结果是:1,因为instr字符串索引从1开始,所以是1不是0

instr('ABCDABCDAEF', 'DA', 1, 2);   -- 返回结果是:8,返回第二次出现'DA'的位置

instr('A BCDABCDAEF', 'DA', 1, 2);  -- 返回结果是:9,由于我在元字符串中加了一个空格,空格仍然算一个字符




版权声明:本文为博主牟云飞原创文章,未经博主允许不得转载。

数据库字符串截取——Demo(100;30;20)

数据以;为分隔符,数据库数据如下: ;;50 ;22; ;14; 30;; 20;;80 20;30;20 需要获取分割符之间的数据,可以使用截取函数substr...

IOS-20-数据库操作之(SQLite第三方封装库FMDB)的基础入门使用及demo源码

前言:苹果IOS操作系统较常用的数据库有两种: 1.CoreData:苹果原生数据库,可视化编辑界面,易于后期不同开发人员维护,接触过Android的SQLite或者Sql语句的开发人员不太适应这种方...
  • IOT_LI
  • IOT_LI
  • 2015年10月23日 16:55
  • 817

Qt5官方demo解析集20——Chapter 6: Writing an Extension Plugin

本系列所有文章可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集19——Chapter...

C#练习——去掉字符串两端的空格、统计字符出现的次数及出现的索引位置、随机生成10个1-100之间的不重复的偶数

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst...

1035. Password (20)【字符串处理】——PAT (Advanced Level) Practise

题目信息1035. Password (20)时间限制400 ms 内存限制65536 kB 代码长度限制16000 BTo prepare for PAT, the judge sometime...

1061. Dating (20)【字符串操作】——PAT (Advanced Level) Practise

题目信息1061. Dating (20)时间限制50 ms 内存限制65536 kB 代码长度限制16000 B Sherlock Holmes received a note with so...

1073. Scientific Notation (20)【字符串操作】——PAT (Advanced Level) Practise

题目信息1073. Scientific Notation (20)时间限制100 ms 内存限制65536 kB 代码长度限制16000 BScientific notation is the ...

jsp页面调用时间:让2008-10-6 20:36:42 变成 2008-10-6 ——从数据库调用时只显示日期

今天在在做项目时发现页面上从数据库中调用日期时,时间也一起显示出来了,比如说我只想要显示日期2008-10-6,但通过语句调用出来时显示是2008-10-6 20:36:42 。    ...

Oracle——20数据库恢复与备份

备份是将数据库中的数据信息保存起来,而恢复则是将已经备份的数据库信息还原到数据库系统中。    一、数据库的备份类型  Oracle数据库的备份有3种标准形式:导出、脱机备份和联机备份。  导出方式是...
  • zylzb
  • zylzb
  • 2014年10月27日 17:34
  • 285
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库字符串截取——Demo(100;30;20)
举报原因:
原因补充:

(最多只允许输入30个字)