2012-05-25 167 views
-2

我需要在我的項目實現的功能:

我必須從具有5列的表中選擇10,然後插入後在同一個表中的數據更新檢索到的2列數據(來自select查詢)...什麼查詢將實現相同的功能。例如:(10行) column1中的數據爲'zz','zz','zz','zz','zz','zz','zz','zz','zz' ,'Z Z'。在列2
數據爲 'ClassA的', 'ClassB的', 'ClassC', 'D類', 'CLASSE', 'ClassA的', 'ClassB的', 'ClassC', 'D類', 'CLASSE'甲骨文插入

INSERT成片(SELECT * FROM平板電腦(更新COLUMN1 = 'YY',在該行的列中的現有數據列2 =追加 '_TT'))

燒成查詢後,我們有20條,10歲和10新。
10個新記錄數據將是 第1列是'yy','yy','yy','yy','yy','yy','yy','yy','yy',' YY」在列2
數據爲 'ClassA_tt', 'ClassB_tt', 'ClassC_tt', 'ClassD_tt', 'ClassE_tt', 'ClassA_tt', 'ClassB_tt', 'ClassC_tt', 'ClassD_tt', 'ClassE_tt'

等其餘3列的數據將是相同的

請指導我在取景查詢

+0

你能否讓你的問題更清楚?無論如何,你可能想要使用INSERT ALL語句。 – fudo

+0

如果您發佈了一些樣本數據,顯示出發地點和期望的結果,那麼我們可以更容易地進行您的要求。 – APC

+0

@APC請檢查編輯的問題,現在它應該更有意義 –

回答

1

這取決於您的查詢的大小和你想要的數據進行更新的方式。但是對於你的榜樣,你可以使用

insert into table (column1,column2) 
select decode(column2,'1','yy','2','zz',null) col1, col2 from table; 

編輯:

後你改變了你的問題我不明白你想都做什麼。在列2是ABC,BCD,DCE,XYZ等

,因爲我不明白模式

數據:請解釋這一點。

編輯2:

確定。我們去:

INSERT INTO <table_name> (col1,col2,col3,col4,col5) 
SELECT col1,col2,col3,col4,col5 
FROM (
    select 'yy' as col1 , (col2 || '_tt') as col2,col3,col4,col5, rownum r_num 
    from <table_name> 
) where r_num <= 10; 

你沒有指定你想要哪10行。這將選擇並更改由內部選擇查詢返回的第10行。

+0

@GrzegorzWilczura calrification你問。內部查詢只返回10行 –

+0

@ jain007所以基本上你並不想特定的10行。你想要所有的行(恰好是10)。這使得查詢更容易:) –

+0

你完全正確的!感謝您的理解 –