Oracle中instr函數使用方法建站知識
導讀:1建站知識在Oracle/PLSQL中,instr函數返回要截取的字符串在源字符串中的位置。只檢索一次,就是說從字符的開始到字符的結尾就網站seo優化課程網站seo優化培訓。
INSTR (源字符串, 目標字符串, 起始位置, 匹配序號) 在Oracle/PLSQL中,instr函數返回要截取的字符串在源字符串中的位置。只檢索一次,就是說從字符的開始到字符的結尾就結束。 語法如下: instr( string1, string2 [, start_position [, nth_appearance ] ] ) 參數分析: string1 源字符串,要在此字符串中查找。 string2 要在string1中查找的字符串. start_position 代表string1 的哪個位置開始查找。此參數可選,如果省略默認為1. 字符串索引從1開始。如果此參數為正,從左到右開始檢索,如果此參數為負,從右到左檢索,返回要查找的字符串在源字符串中的開始索引。 nth_appearance 代表要查找第幾次出現的string2. 此參數可選,如果省略,默認為 1.如果為負數系統會報錯。 注意: 如果String2在String1中沒有找到,instr函數返回0. 示例: SELECT instr('syranmo','s') FROM dual; -- 返回 1 SELECT instr('syranmo','ra') FROM dual; -- 返回 3 SELECT instr('syran mo','a',1,2) FROM dual; -- 返回 0 (根據條件,由于a只出現一次,第四個參數2,就是說第2次出現a的位置,顯然第2次是沒有再出現了,所以結果返回0。注意空格也算一個字符!) SELECT instr('syranmo','an',-1,1) FROM dual; -- 返回 4 (就算是由右到左數,索引的位置還是要看‘an'的左邊第一個字母的位置,所以這里返回4) SELECT instr('abc','d') FROM dual; -- 返回 0 注:也可利用此函數來檢查String1中是否包含String2,如果返回0表示不包含,否則表示包含。 對于上面說到的,我們可以這樣運用instr函數。請看下面示例: 如果我有一份資料,上面都是一些員工的工號(字段:CODE),可是我現在要查詢出他們的所有員工情況,例如名字,部門,職業等等,這里舉例是兩個員工,工號分別是'A10001′,'A10002′,其中假設staff是員工表,那正常的做法就如下: SELECT code , name , dept, occupation FROM staff WHERE code IN ('A10001','A10002'); 或者: SELECT code , name , dept, occupation FROM staff WHERE code = 'A10001' OR code = 'A10002'; 有時候員工比較多,我們對于那個'覺得比較麻煩,于是就想,可以一次性導出來么?這時候你就可以用instr函數,如下: SELECT code , name , dept, occupation FROM staff WHERE instr('A10001,A1000seo網站關鍵詞優化2',code)>0; 查詢出來結果一樣,這樣前后只用到兩次單引號,相對方便點。 還有一個用法,如下: SELECT code, name, dept, occupation FROM staff WHERE instr(code, '001') > 0; 等同于 SELECT code, name, dept, occupation FROM staff WHERE code LIKE '%001%' ; Oracle的instr函數使用實例INSTR方法的格式為 INSTR(src, subStr,startIndex, count) src: 源字符串 subStr : 要查找的子串 startIndex : 從第幾個字符開始。負數表示從右往左查找。 count: 要找到第幾個匹配的序號 返回值: 子串在字符串中的位置,第1個為1;不存在為0. (特別注意:如果src為空字符串,返回值為null)。 用法舉例: 最簡單的一種,查找l字符,首個l位于第3個位置。 SQL> select instr('hello,java world', 'l') from dual; INSTR('HELLO,JAVAWORLD','L') ---------------------------- 3 查找l字符,從第4個位置開始。 SQL> select instr('hello,java world', 'l', 4) from dual; INSTR('HELLO,JAVAWORLD','L',4) ------------------------------ 4 查找l字符,從第1個位置開始的第3個 SQL> select instr('hello,java world', 'l', 1, 3) from dual; INSTR('HELLO,JAVAWORLD','L',1, ------------------------------ 15 查找l字符,從右邊第1個位置開始,從右往左查找第3個(也即是從左到右的第1個) SQL> select instr('hello,java world', 'l', -1, 3) from dual; INSTR('HELLO,JAVAWORLD','L',-1 ------------------------------ 3 找不到返回0 網seo優化趨勢SQL> select instr('hello,java world', 'MM') from dual; INSTR('HELLO,JAVAWORLD','MM') ----------------------------- 0 源字符為空字符串''的情況
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-22 ,文章Oracle中instr函數使用方法建站知識主要講述使用方法,函數,Oracle中instr函數使用方法建站知識網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5305.html