0
我剛剛開始使用PL/SQL,因此請友好。 我有一個簡單的問題,我想從表中提取不同的名稱。 當我這樣做時,在循環內部,我將針對其他操作中的每個不同名稱執行操作。創建在循環內輸出不同名稱的Oracle PL/SQL過程
我被困在如何獲得循環內的唯一名稱。我做的是不是因爲工作,如果我有:
1 MARY
2 MARY
3 JOHN
我輸出:
MARY
MARY
相反的:
MARY
JOHN
這是我的代碼:
create or replace PROCEDURE CREATE_TABLE
(
NM OUT VARCHAR2,
tot OUT NUMBER
)
AS
BEGIN
SELECT count(DISTINCT NAME) INTO tot FROM MYTABLE;
FOR r IN 1..tot
LOOP
SELECT NAME INTO NM
FROM (
SELECT DISTINCT NAME,
ROWNUM rnum
FROM MYTABLE
ORDER BY NAME DESC
)
WHERE rnum = r;
dbms_output.put_line (NM);
END LOOP;
END;
'SELECT DISTINCT名稱,ROWNUM rnum'是你的問題的根源 - 因爲ROWNUM是所有獨特記錄,然後'DISTINCT'是reduntant。你從子查詢中得到了2個'Mary',首先是rownum 1,第二個是rownum 2.爲什麼在這裏使用'rownum'?我不明白你的意圖。 – krokodilko
對於每個獨特的名字,我需要做一些操作(連接其他表格等)。我需要的只是一個循環,並在循環內部逐個提取不同的名稱。因此,在這種情況下,我想要MARY然後是JOHN,以便我可以與另一個具有與JOHN或MARY有關的屬性的表加入。 – user