oracle里有没有类似java里的indexof函数?

如题。在oracle里比如有一张表tab里的一个字段col数据是这样的1234,fdf123,abc我想查询出“,”之前的数据,查询出的结果集就是这样的:1234123想... 如题。在oracle里比如有一张表tab里的一个字段col数据是这样的
1234,fdf
123,abc
我想查询出“,”之前的数据,查询出的结果集就是这样的:
1234
123
想问下SQL语句该怎么写?
展开
 我来答
badkano
2013-03-27 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部
select substr(字段名,instr(字段名,',')+1,length(字段名)-instr(字段名,',')) from 表名

instr函数是找到逗号的位置的函数instr(字符串.要查找的字符串) 得到的是起始位置
substr是截取函数 substr( 字符串,起始位置,截取长度)
上边俩函数用法就大概是那样,不懂再问吧
azhqgu
推荐于2017-09-10 · TA获得超过323个赞
知道小有建树答主
回答量:563
采纳率:75%
帮助的人:202万
展开全部
在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。
语法如下:instr( string1, string2 [, start_position [, nth_appearance ] ] )
string1 源字符串,要在此字符串中查找。
string2 要在string1中查找的字符串.
start_position 代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance 代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二楼最厉害
2013-03-28 · TA获得超过4345个赞
知道小有建树答主
回答量:288
采纳率:50%
帮助的人:237万
展开全部
一楼的sql是有问题的,应该是下面的:
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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
低调的幸福c_c
2013-03-27
知道答主
回答量:46
采纳率:0%
帮助的人:12.1万
展开全部
如果是一个数据的话 你可以用字符串截取
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式