2014-03-06 71 views
-1

我有這個要求。首先,我需要像這樣創建emp1表使用另一個表格創建表格

names 
------------- 
Hunt, Michael 
Hunt, Ethan 

通過使用emp1,我需要創建emp2。選擇emp2後,輸出將如此。

FirstLast 
----------- 
Michael Hunt 
Ethan Hunt 
+0

是*每*記錄在此*確切*格式? – Brad

+0

是的確切格式先生 – viki

回答

1

嘗試:

create table emp2 as 
select substr(name, instr(name, ', ') + 1, length(name)) as fname, 
     substr(name, 1, instr(name, ', ') - 1) as lname 
    from emp 

SQL小提琴演示:http://sqlfiddle.com/#!4/c4c15/8/0

或單個列:

create table emp2 as 
select substr(name, instr(name, ', ') + 1, length(name)) 
     ||' '||substr(name, 1, instr(name, ', ') - 1) as flast 
    from emp 
+0

您可以將它CAST它作爲VARCHAR2(n)來提及大小! –

+0

我需要創建單列'firstlast' – viki

+0

@viki然後你必須連接,看到我的編輯與將做到這一點的查詢。 –

0

試試這個代碼

 create table emp1(names nvarchar(50)); 
    insert into emp1(names) values('Hunt,Michael'); 
    insert into emp1(names) values('Hunt,Ethan'); 
    create table emp2(FirstLast nvarchar(50)); 
    insert into emp2(FirstLast) Select names from emp1; 
    select * from emp2; 
    select FirstLast, 
    Replace(RIGHT(FirstLast, LEN(FirstLast) - CHARINDEX(',', FirstLast))+' '+ LEFT(FirstLast, CHARINDEX(',', FirstLast)),',','') 
     AS UpdatedFirstLast 
FROM Emp2 
+0

@viki如果有任何的答案對你有幫助.. – user

+0

先生我需要創建emp2使用emp1先生兩個都有單列我是新的SQL請指導我 – viki

0

你可以試試下面提及代碼:

insert into emp2 
SELECT TRIM(SUBSTR(NAMES,INSTR(NAMES,',',1,1)+1,LENGTH(NAMES) - INSTR(NAMES,',',1,1))||' '||SUBSTR(NAMES,1,INSTR(NAMES,',',1,1)-1)) AS FirstLast FROM EMP1; 
+0

使用emp1我需要創建emp2先生請你指導thanx提前 – viki

0

試試這個代碼

create table emp1(names nvarchar(50)); 
    insert into emp1(names) values('Hunt,Michael'); 
    insert into emp1(names) values('Hunt,Ethan'); 
    select names into emp2 from emp1; 
    select names, 
    Replace(RIGHT(names, LEN(names) - CHARINDEX(',', names))+' '+ LEFT(names, CHARINDEX(',', names)),',','') 
    AS FirstLast 
    FROM emp2 
+0

@viki你有答案嗎? – user

+0

它說缺少右括號。 – viki

+0

@viki我沒有收到任何錯誤。請複製整個代碼並粘貼它。然後將它與正在執行的查詢進行比較,您會發現錯誤。 – user