我想使用table中的特定值作为while循环中的条件。
我有下表
Type | Amount
--------------
aa 50
aa 50
aa 50
aa 50
aa 50
bb null
aa 100
aa 100
aa 100
aa 100
..
aa 80
aa 100
aa 90
aa 100
aa 80
aa 100
aa 100
aa 100
我需要添加状态列。
declare
cursor c1
is
SELECT
Type
, Amount
FROM Table;
begin
while c1.Type = 'bb' LOOP
INSERT INTO TABLE_2
(
Type, Amount, Status
)
VALUES
(
Table.Type, Table.Amount, Status );
END LOOP;
END;
Table_2有另外的Status列,我想将Table_2'X'插入到Status列,其中while的条件未获取但是当循环遇到值'bb'时,Type列中的'Y'插入Status但仅对于10行,休息时应插入“Z”值。
循环的结果:
Type | Amount | Status
------------------------
aa 50 X
aa 50 X
aa 50 X
aa 50 X
aa 50 X
bb null Z (1)
aa 100 Z (2)
aa 100 Z (3)
aa 100 Z (4)
aa 100 Z (5)
..
aa 80 Z (8)
aa 100 Z (9)
aa 90 Z (10)
aa 100 Y
aa 80 Y
aa 100 Y
aa 100 Y
aa 100 Y
答案 0 :(得分:0)
如Poole所述,您的样本数据/结果与您的解释不符。
在任何情况下,您都不需要游标或循环。下面的查询应该根据状态的条件进行一些修改。
INSERT INTO TABLE_2
SELECT
Type
, Amount
, case Type when 'bb' then 'X' else 'Z' end
FROM Table