今天有個同學問我這個instr函式,我也不太清楚就上網查了查做乙個小小的記錄吧
instr(c1,c2,i,j)
在乙個字串中搜尋指定的字元,返回發現指定的字元的位置;
c1 被搜尋的字串
c2 希望搜尋的字串
i 搜尋的開始位置,預設為1
j 出現的位置,預設為1
sql> select instr(oracle traning,ra,1,2) instring from dual;
instring
---------
9 他的位置搜尋是從1開始的也就是說o的位置是1,這點要分清楚。
instr方法的格式為
instr(源字串, 要查詢的字串, 從第幾個字元開始, 要找到第幾個匹配的序號)
返回找到的位置,如果找不到則返回0.
例如:instr('corporate floor','or', 3, 2)中,源字串為'corporate floor', 在字串中查詢'or',從第三個字元位置開始查詢"or",取第三個字後第2個匹配項的位置。
預設查詢順序為從左到右。當起始位置為負數的時候,從右邊開始查詢。
所以select instr('corporate floor', 'or', -1, 1) "aaa" from dual的顯示結果是
instring
——————
1這個最巧妙的我感覺還是用在有幾個固定值的order by中
eg:order by instr("1,0,-1,2,8,9",mark,1,1)是不是感覺很方便。
希望可以幫到大家
引用原文:
Oracle中的instr函式
在oracle pl sql中,instr函式返回string2在string1中出現的位置,語法如下 例項1.從起始位置開始搜尋,第一次出現子串的位置 sql select instr chen linbo bobo12082119 bo 1,1 from dual instr chen linb...
Oracle中的instr 函式
格式一 instr string1,string2 instr 源字串,目標字串 注 在oracle plsql中,instr函式返回要擷取的字串在源字串中的位置。只檢索一次,也就是說從字元的開始到字元的結尾就結束。1 select instr helloworld l from dual 返回結果...
Oracle中 Instr 這個函式
sql charindex 字串 字段 0 charindex administrator muserid 0 oracle instr 字段,字串 1,1 0 instr muserid,administrator 1,1 0 在專案中用到了oracle中 instr 這個函式,順便仔細的再次學習...