Oracle中判斷(case when),截取(substr),位置(instr)用法


 

轉自:http://rainbowdesert.iteye.com/blog/1677911

博客分類:  
 

1.  判斷(case when)

 

Sql代碼   收藏代碼
 1 SELECT col1, col2,   
 2        CASE   
 3           WHEN col3 > 1 AND col3 <2   
 4              THEN '1'   
 5           WHEN col3 > 2 AND col3 <3   
 6              THEN '2'   
 7           WHEN col3 > 3 AND col3 <4   
 8              THEN '3'   
 9           ELSE '4'   
10        END mylevel   
11 FROM table1  

 

注意點: 
(1) 以CASE開頭,以END結尾 
(2) 分支中WHEN 后跟條件,THEN為顯示結果 
(3) ELSE 為除此之外的默認情況,類似於高級語言程序中switch case的default,可以不加 
(4) END 后跟別名

轉自:http://cindysaj.iteye.com/blog/296635

 

2. 截取(substr)

Sql代碼   收藏代碼
 
1 substr('ABCDEFG', 2, 3) = 'BCD'     
2 substr('ABCDEFG', -2)  = 'FG'   
3 substr('ABCDEFG', -4)  = 'DEFG' 

 

 注意:

     substr函數有三個參數,允許你將目標字符串的一部份輸出,

     第一個參數為目標字符串,

     第二個字符串是將要輸出的子串的起點,

     第三個參數是將要輸出的子串的長度。
     如果第二個參數為負數,那么將會從源串的尾部開始向前定位至負數的絕對值的位置。
轉自:http://rubyol.iteye.com/blog/82142

 

3. 位置(instr)

 

Sql代碼   收藏代碼
1 INSTR('CORPORATE FLOOR','OR', 3, 2)  
2 --結果14 

 

源字符串為'CORPORATE FLOOR', 在字符串中查找'OR',從第三個字符位置開始查找"OR",取第三個字后第2個匹配項的位置。 

 

Sql代碼   收藏代碼
1     SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "aaa" FROM DUAL  
2     --結果14  

 

 

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

 

 轉自:http://blog.csdn.net/e_wsq/article/details/2983102

 


免責聲明!

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



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