6 回答

TA貢獻1847條經驗 獲得超11個贊
是的,主鍵是有序唯一的,所以oracle默認給它一個索引使查詢的時候更快速的定位目標數據,唯一鍵也是同理,通過索引查詢是直接利用rowid確定目標數據,數據唯一的話才能體現索引的便利。

TA貢獻1995條經驗 獲得超2個贊
select substr('t.col',instr('t.col','@-@'),instr('t.col',',') - 1) col from 表名 t
//注:‘@-@’是為了保證col字段里逗號前面不存在這個@-@字符(你可以隨便寫一個,保證不存在就行),所以查詢的時候會從第一位開始截取。不然萬一存在了這個字符,它會從這個字符開始截取。

TA貢獻1802條經驗 獲得超5個贊
可以用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貢獻1770條經驗 獲得超3個贊
select substr(字段名,instr(字段名,',')+1,length(字段名)-instr(字段名,',')) from 表名
instr函數是找到逗號的位置的函數instr(字符串.要查找的字符串) 得到的是起始位置
substr是截取函數 substr( 字符串,起始位置,截取長度)

TA貢獻1833條經驗 獲得超4個贊
在Oracle/PLSQL中,instr函數返回要截取的字符串在源字符串中的位置。
語法如下:instr( string1, string2 [, start_position [, nth_appearance ] ] )
string1 源字符串,要在此字符串中查找。
string2 要在string1中查找的字符串.
start_position 代表string1 的哪個位置開始查找。此參數可選,如果省略默認為1. 字符串索引從1開始。如果此參數為正,從左到右開始檢索,如果此參數為負,從右到左檢索,返回要查找的字符串在源字符串中的開始索引。
nth_appearance 代表要查找第幾次出現的string2. 此參數可選,如果省略,默認為 1.如果為負數系統會報錯。
- 6 回答
- 0 關注
- 616 瀏覽
添加回答
舉報