Jer*_*emy 16 sql oracle insert
我想插入N个相同的行,除了其中一个值不同.具体来说,这就是我想要的:
insert into attribute_list (id,value,name)
values
(
select (id,'Y','is_leveled') from value_list where val >= 50
);
Run Code Online (Sandbox Code Playgroud)
因此对于每个具有val> = 50的值,我会在attribute_list中插入一行.这可以用一个insert语句完成,还是我只需要在excel中手动生成这些插入?
(注意:这是一个简化的例子,以澄清问题,因此无需攻击此特定情况的不必要)
mwi*_*ahl 26
你绝对可以在一个声明中做到这一点!
试试这个:
INSERT INTO attribute_list (id, value, name)
SELECT id, 'Y', 'is_leveled'
FROM value_list WHERE val >= 50
Run Code Online (Sandbox Code Playgroud)
这就是FOR循环的用途.
DECLARE
x NUMBER := 100;
BEGIN
FOR i IN 1..10 LOOP
IF MOD(i,2) = 0 THEN -- i is even
INSERT INTO temp VALUES (i, x, 'i is even');
ELSE
INSERT INTO temp VALUES (i, x, 'i is odd');
END IF;
x := x + 100;
END LOOP;
COMMIT;
END;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
44235 次 |
最近记录: |