Oracle SQL - 使用一个语句将多行插入表中?

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)


nes*_*983 5

这就是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)