2014-12-01 71 views
-1

使用的第i個值在一個循環,我想每次都從表中獲得的第i個值,我寫的是這樣的:我需要從一列

FOR i IN 1..(select count (*) from table1) LOOP 
INSERT INTO TABLE2 
select id from table1 where column_nam in (select column_nam[i] from table1); 
end loop; 
end 

例如,column_nam[1]=HPPC003,但它的工作原理錯了,我該怎麼做?

enter image description here

+0

關係數據庫中沒有「ith」行。表中的行未排序。想想籃子裏的球,哪一個是「ith」球?考慮到有關數組處理的所有問題,您應該退後一步,閱讀關於關係數據庫如何工作的良好教程。 – 2014-12-01 15:56:52

+1

a_horse說了什麼 - 因此定義「ORDER BY」表達式使其成爲一個有效的問題。並且請不要將圖片用於值。改爲發佈文字。 *永遠*你的Postgres版本。 – 2014-12-01 16:50:25

回答

0

通過@a_horse_with_no_name的意見是正確的,你的想法似乎站不住腳。您不能爲關係數據庫行提供參考,沒有任何基礎。

雖然我同意你應該重新審視基礎知識,但我也想爲這個特殊問題提出解決方案;如果表中有另一個列字段,則可以將其用作「ith」計數器引用。即Reference和Data的列,其中1,2,3等用於Reference和HPPC003,HPFC002用於Data列,然後您可以在那裏選擇Data WHERE Reference == 1以獲得HPPC003。

我希望這會有所幫助,而Elmasri & Navathe是學習數據庫基礎的非常好的參考。