0

2 列のテーブルがあり、最初の列には繰り返し値があり、while ループで一度に個別の値をそれぞれ選択したいので、SQL で一時テーブルを作成しましたが、Oracle SQL 開発者ではどのようにコードを記述すればよいですか?

CREATE TABLE look_up_table
(row_id INT NOT NULL,
 attribute VARCHAR(500),
 VARCHAR(700)
)
/* now manually populating this table */
INSERT INTO look_up_table
VALUES
(1, grmacolor_frame_access, black);
(2, grmacolor_frame_access, blue);
(3, grmacolor_frame_access, red);
(4, grmamaterial_frame_access, acetate);
(5, grmamaterial_frame_access, metal);
(6, grmamaterial_frame_access, nylon);
(7, grmamaterial_frame_access, plastic);

DECLARE @temp_col_val NVARCHAR (700),  @counter1 INT,
SET @counter1 = 0;
SET @column_count = (SELECT COUNT (DISTINCT attribute) FROM look_up_table);

CREATE TABLE #temp1 AS
SELECT DISTINCT attribute AS attrib,
ROW_NUMBER() OVER (ORDER BY attribute) AS seqno1,
FROM look_up_table;

WHILE (@counter1 < @column_count)
BEGIN;

SET @temp_col_val = (SELECT attrib FROM #temp1 WHERE seqno1 = @counter1;

助けてください

4

1 に答える 1

0

次のコードは、各属性をループして出力します。

declare 
    curField varchar2(100);
    resultCnt number ; 
begin    
    select count(distinct attribute) into resultCnt from look_up_table;
    for ind in 1..resultCnt loop
        select attribute into curField from (
            select attribute, rownum rwn
            from 
            (
               select distinct attribute
               from look_up_table
            )
        ) where rwn = ind;

        dbms_output.put_line (curField);
    end loop;
end;
/
于 2012-08-23T16:24:25.253 に答える