Oracle Instr()的特殊用法

 

NSTR方法的格式爲:
     
   INSTR(源字符串, 目標字符串, 起始位置, 匹配序號)

例如:

        INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串爲'CORPORATE FLOOR', 目標字符串爲'OR',起始位置爲3,取第2個匹配項的位置。

默認查找順序爲從左到右。當起始位置爲負數的時候,從右邊開始查找。

所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的顯示結果是

Instring
——————
14

特殊用法:

        特殊用法說到底也沒有什麼特別,我們上面看到的“源字符串”、“目標字符串”都是寫死的,其實它也可以爲字段,看下面的例子:

        select   id, name from users where instr('101914, 104703', id) > 0;

        它等價於

         select   id, name from users where id = 101914 or id = 104703;

用途:

         採用instr在原因是我在前臺連續錄入多個人員的id,想返回這些人員的資料。舉個例子:“王武,男,計算機系學生;曉亮,男,藝術系學生。”

         前臺,接收輸入的id,用","分開,在後臺我不想再對它做分開來處理,就可以使用instr語句,然後再用for loop連接得到的結果。

        還有一個,可能不怎麼常用:

         select   id, name from users where instr(id, '101') > 0;  

         等價於

          select   id, name from users where id like '%101%'

          對於這樣使用instr的性能怎樣,還沒有做過同比測試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章