2013-11-01 16 views
1

現在數據和源表(T1)的結構看起來像下面:需要一個行SQL語句來從一個表的數據複製到另一個表

NAME     RECORD_NUMBER  APPROVERS     AREA       
MS COORDINATOR 1123  1     EMEA_ARMSTROA    c       
MS COORDINATOR 1123  3     AMERICAS_SIMSS    c       
MS COORDINATOR 1123  4     ASIAPACIFIC_KUMSANGA  c       
MS COORDINATOR 1123  5     ASIAPACIFIC_MSAGE   c       
MS COORDINATOR 1123  7     ASIAPACIFIC_MSAGE   c 

然後我想將數據從表複製上述成一個新的表(T2)並刪除重複的行和移除record_number間隙和排序以字母順序批准和復位record_number的值,所以在目標表中的數據應被看作是這樣的:

NAME     RECORD_NUMBER  APPROVERS     AREA       
MS COORDINATOR 1123  1     AMERICAS_SIMSS    c        
MS COORDINATOR 1123  2     ASIAPACIFIC_KUMSANGA  c 
MS COORDINATOR 1123  3     ASIAPACIFIC_MSAGE   c 
MS COORDINATOR 1123  4     EMEA_ARMSTROA    c  

所以,任何人可以給我一個一行SQL解決方案? T2表的主鍵是(名稱,記錄號,區域)

+0

多久可以是一條線是什麼?因爲這4項任務需要相當錯誤。 –

回答

2

使用ROWNUM來生成record_number列。

試試這個:

INSERT INTO t2 
    SELECT name, 
      ROWNUM AS record_number, 
      approvers, 
      area 
    FROM (SELECT DISTINCT name, approvers, area 
       FROM t1 
      ORDER BY approvers) x 
相關問題