6 回答
TA贡献1772条经验 获得超5个赞
是的,主键是有序唯一的,所以oracle默认给它一个索引使查询的时候更快速的定位目标数据,唯一键也是同理,通过索引查询是直接利用rowid确定目标数据,数据唯一的话才能体现索引的便利。
TA贡献1826条经验 获得超6个赞
select substr('t.col',instr('t.col','@-@'),instr('t.col',',') - 1) col from 表名 t
//注:‘@-@’是为了保证col字段里逗号前面不存在这个@-@字符(你可以随便写一个,保证不存在就行),所以查询的时候会从第一位开始截取。不然万一存在了这个字符,它会从这个字符开始截取。
TA贡献1783条经验 获得超4个赞
可以用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;
TA贡献1872条经验 获得超3个赞
在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。
语法如下:instr( string1, string2 [, start_position [, nth_appearance ] ] )
string1 源字符串,要在此字符串中查找。
string2 要在string1中查找的字符串.
start_position 代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance 代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
- 6 回答
- 0 关注
- 923 浏览
添加回答
举报