2010-06-21 80 views
0

如何在名稱的開始和結束位置顯示名稱包含相同字符的員工的詳細信息?Oracle sql函數問題

+0

氣味像功課... – 2010-06-21 08:12:57

+0

作業提示:查找instr函數,看看你是否可以在你的查詢中以某種方式使用它,或者用regexp做一些聰明的事情。 – Rene 2010-06-21 08:45:39

回答

3

有兩種方法可以使用SUBSTR()來標識ENAME的一部分。更正統的方法效果是傳遞一個負值偏移計數從結束的字符串的的基礎上:

SQL> select ename 
    2 from emp 
    3 where substr(ename,1,1) = substr(ename,-1,1) 
    4/

ENAME 
---------- 
TROMBONIST 

SQL> 

只是爲了笑容,我包括它使用無證扭轉第二種方法()函數:

SQL> select ename, reverse(ename) 
    2 from emp 
    3 where substr(ename,1,1) = substr(reverse(ename),1,1) 
    4/

ENAME  REVERSE(EN 
---------- ---------- 
TROMBONIST TSINOBMORT 

SQL> 

在10g及以上,我們也可以用正則表達式解決這個問題:

SQL> select ename 
    2 from emp 
    3 where regexp_substr(ename,'^.') = regexp_substr(ename,'.$') 
    4/

ENAME 
---------- 
TROMBONIST 

SQL>