oracle中INSTR函數的用法


今天有個同學問我這個INSTR函數,我也不太清楚就上網查了查做一個小小的記錄吧

 

INSTR(C1,C2,I,J) 
在一個字符串中搜索指定的字符,返回發現指定的字符的位置; 
C1 被搜索的字符串 
C2 希望搜索的字符串 
I 搜索的開始位置,默認為1 
J 出現的位置,默認為1 
SQL> select instr(oracle traning,ra,1,2) instring from dual; 
INSTRING 
--------- 

他的位置搜索是從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)是不是感覺很方便。

 

希望可以幫到大家

 

引用原文:http://blog.csdn.net/q1059081877q/article/details/47091619

 

寫博客是為了記住自己容易忘記的東西,另外也是對自己工作的總結,文章可以轉載,無需版權。希望盡自己的努力,做到更好,大家一起努力進步!

如果有什么問題,歡迎大家一起探討,代碼如有問題,歡迎各位大神指正!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM