2013-10-25 83 views
-1

,有2臺SQL文本功能的Oracle

t_employee

ID    NUMBER, 
    DEPARTMENT_ID NUMBER, 
    CHIEF_ID  NUMBER, 
    NAME   VARCHAR2(100 BYTE), 
    SALARY   NUMBER, 
    BIRTH_DATE  DATE, 
    ADDRESS  VARCHAR2(200 BYTE), 
    STATUS   VARCHAR2(1 BYTE) 

t_department

ID NUMBER, 
    NAME VARCHAR2(100 BYTE) 

你能幫忙嗎? 顯示其薪水小於地址* 1000的長度的員工和重建列格式(姓名father_name)格式化(名字姓father_name)

1部分 - 顯示其薪水小於地址的長度的員工* 1000 - 是

select name from t_employee where t_employee.salary < LENGTH(ADDRESS)*1000; 

但如何改變格式的文本數據???

NAME從表t_employee有格式

姓名father_name或(有時)surname.name.father_name

非常感謝!

+0

你的問題不明確。什麼是姓氏或父名? – SKJ

+0

全名包括3個單詞:名字(Mike)SURNAME(史密斯)和父語 – user2834458

+0

或簡單問題:列有格式a b c - 需要選擇b a c。哪個功能需要? – user2834458

回答

0
or simple question: column has format a b c - need select b a c. Which function need? 

我想你必須使用空間作爲分隔符分割字符串,然後安排分裂的部分。我不認爲有一個內置函數用於分割字符串。相反,您可以創建一個UDF來完成工作。使用substrinstr函數來做同樣的事情。如果你需要的示例代碼分割字符串,請使用以下鏈接:

https://bitbucket.org/janihur/orasql-ex/src/8a68a1d724f1/split.sql

+0

需要substr和instr或REGEXP_REPLACE(如果可行)? – user2834458

+0

如果需要,也可以使用REGEXP_SUBSTR。 imo,REGEXP_REPLACE在這裏不起作用。 – SKJ

+0

如何在這裏使用REGEXP_SUBSTR? – user2834458