oracle里有没有类似java里的indexof函数?
如题。在oracle里比如有一张表tab里的一个字段col数据是这样的1234,fdf123,abc我想查询出“,”之前的数据,查询出的结果集就是这样的:1234123想...
如题。在oracle里比如有一张表tab里的一个字段col数据是这样的
1234,fdf
123,abc
我想查询出“,”之前的数据,查询出的结果集就是这样的:
1234
123
想问下SQL语句该怎么写? 展开
1234,fdf
123,abc
我想查询出“,”之前的数据,查询出的结果集就是这样的:
1234
123
想问下SQL语句该怎么写? 展开
5个回答
展开全部
在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。
语法如下:instr( string1, string2 [, start_position [, nth_appearance ] ] )
string1 源字符串,要在此字符串中查找。
string2 要在string1中查找的字符串.
start_position 代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance 代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
语法如下:instr( string1, string2 [, start_position [, nth_appearance ] ] )
string1 源字符串,要在此字符串中查找。
string2 要在string1中查找的字符串.
start_position 代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance 代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼的sql是有问题的,应该是下面的:
select substr('t.col',instr('t.col','@-@'),instr('t.col',',') - 1) col from 表名 t
//注:‘@-@’是为了保证col字段里逗号前面不存在这个@-@字符(你可以随便写一个,保证不存在就行),所以查询的时候会从第一位开始截取。不然万一存在了这个字符,它会从这个字符开始截取。
select substr('t.col',instr('t.col','@-@'),instr('t.col',',') - 1) col from 表名 t
//注:‘@-@’是为了保证col字段里逗号前面不存在这个@-@字符(你可以随便写一个,保证不存在就行),所以查询的时候会从第一位开始截取。不然万一存在了这个字符,它会从这个字符开始截取。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-29
展开全部
可以用substr和instr套嵌查询出来
select substr(字段名,1,instr(字段名,',',1,1)-1) from tab;
如果你的字段是数值型,先用to_char()转换成字符型
select substr(to_char(字段名),1,instr(to_char(字段名),',',1,1)-1) from tab;
select substr(字段名,1,instr(字段名,',',1,1)-1) from tab;
如果你的字段是数值型,先用to_char()转换成字符型
select substr(to_char(字段名),1,instr(to_char(字段名),',',1,1)-1) from tab;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是一个数据的话 你可以用字符串截取
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询