2016-03-02 63 views
1

(我是很新的SQL ...)我想定義一個循環,該循環計數器必須在列(例如ID):Oracle SQL:如何在列中定義循環計數器值?

因我(從IDTABLE選擇ID)環 ..

當然,上述不起作用。任何幫助?

+1

以上應該工作,你可以在你想做什麼更精確?以及你應該包括一些所需的輸出和輸入。 – SomeJavaGuy

+0

你可以在你的用例中使用'rownum'僞列嗎? –

+0

表IDTable只有一列(ID),如下所示:(20,32,35,46,...)。我想循環變量在IDTable中取所有的ID。當我在Oracle SQL Dveloper中嘗試上述操作時,出現「未知命令」錯誤消息。 – Matin

回答

2

對於i在(選擇IDTABLE ID)環...

當然上述不起作用。

它確實有效,除非你感到困惑,循環計數器的值和你在for循環中選擇的id是一樣的。

SQL> set serveroutput on 
SQL> BEGIN 
    2 FOR i IN 
    3 (SELECT empno FROM emp 
    4 ) 
    5 LOOP 
    6  dbms_output.put_line(i.empno); 
    7 END LOOP; 
    8 END; 
    9/
7369 
7499 
7521 
7566 
7654 
7698 
7782 
7788 
7839 
7844 
7876 
7900 
7902 
7934 

PL/SQL procedure successfully completed. 

SQL> 
+0

非常感謝。我嘗試使用這個循環計數器在INSERT命令是這樣的: '因我(從EMP選擇EMPNO)LOOP INSERT INTO newtable的(NEWID) 選擇10 *我 END LOOP;' 但得到「表達是錯誤的類型「錯誤行'SELECT 10 * i'。 – Matin

+0

當然這是不正確的。你只需要做'FOR IN IN(從emp emp中選擇empno)LOOP INSERT INTO NewTable(NewID)VALUES(10 * i)END LOOP;' –

+0

@ user1777530請標記爲已回答,也會幫助其他人! –