不可能放多个value 要放入多条数据可以用 insert into tab_name1(col1,col2,col3...) select col1,col2,col3... from tab_name2 where ...;
如果是多条记录的话用 insert into table_name select ... from table_name2 where ....
zhaokeke2004(大力)的方法是可以的!
一看就知道是有很多值要插入到一个表里. 最笨的办法 用 insert into tablename (col1,col2,...) select * from ( select 'a1','a2',... from dual union all select 'a1','a2',... from dual union all select 'a1','a2',... from dual union all ...)要用ultraedit 编辑成SQL
insert into tab_name1(col1,col2,col3...) select col1,col2,col3... from tab_name2 where ...;------------------------------------------- INSERT ALL INTO SAL_HISTORY(empno, hire_date, sal) VALUES( empid, hiredate, sal ) INTO MGR_HISTORY(employee_id, mgr, salary) VALUES( empid, mgr, sal ) SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR FROM EMPLOYEES WHERE employee_id > 200; ------------------------------------------ INSERT ALL WHEN sal > 10000 THEN INTO SAL_HISTORY(empno, hire_date, sal) VALUES( empid, hiredate, sal ) WHEN mgr > 200 THEN INTO MGR_HISTORY(employee_id, mgr, salary) VALUES( empid, mgr, sal ) SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR FROM EMPLOYEES WHERE employee_id > 200; ------------------------------------- INSERT FIRST WHEN sal > 25000 THEN INTO SPECIAL_SAL VALUES(deptid, sal) WHEN HIREDATE LIKE ('%00%') THEN INTO HIREDATE_HISTORY_00 VALUES(deptid, hiredate) WHEN HIREDATE LIKE ('%99%') THEN INTO HIREDATE_HISTORY_99 VALUES(deptid, hiredate) ELSE INTO HIREDATE_HISTORY VALUES(deptid, hiredate) SELECT department_id deptid, SUM(salary) sal, MAX(hire_date) hiredate FROM EMPLOYEES GROUP BY department_id; ------------------------------INSERT ALL INTO SALES_INFO VALUES( employee_id, week_id, sales_mon) INTO SALES_INFO VALUES( employee_id, week_id, sales_tue) INTO SALES_INFO VALUES( employee_id, week_id, sales_wed) INTO SALES_INFO VALUES( employee_id, week_id, sales_thur) INTO SALES_INFO VALUES( employee_id, week_id, sales_fri) SELECT employee_id, week_id, sales_mon, sales_tue, sales_wed, sales_thur, sales_fri FROM SALES_SOURCE_DATA;
我献丑下: 1.如果用insert into table_name values (field_name1,field_name2,field_name3)这个命令的话,每次只能插入一条记录. 2.insert into table_name1 select field_name1,field_name2 from table_name2 where +条件;用这个命令,可以从已存在的表table_name2中选择多条符合where 条件的记录一次性地插入table_name1表中.
要放入多条数据可以用
insert into tab_name1(col1,col2,col3...)
select col1,col2,col3...
from tab_name2
where ...;
insert into table_name
select ...
from table_name2
where ....
最笨的办法
用 insert into tablename (col1,col2,...)
select * from (
select 'a1','a2',... from dual union all
select 'a1','a2',... from dual union all
select 'a1','a2',... from dual union all
...)要用ultraedit 编辑成SQL
select col1,col2,col3...
from tab_name2
where ...;-------------------------------------------
INSERT ALL
INTO SAL_HISTORY(empno, hire_date, sal) VALUES( empid, hiredate, sal )
INTO MGR_HISTORY(employee_id, mgr, salary) VALUES( empid, mgr, sal )
SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR
FROM EMPLOYEES
WHERE employee_id > 200;
------------------------------------------
INSERT ALL
WHEN sal > 10000 THEN
INTO SAL_HISTORY(empno, hire_date, sal) VALUES( empid, hiredate, sal )
WHEN mgr > 200 THEN
INTO MGR_HISTORY(employee_id, mgr, salary) VALUES( empid, mgr, sal )
SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR
FROM EMPLOYEES
WHERE employee_id > 200;
-------------------------------------
INSERT FIRST
WHEN sal > 25000 THEN
INTO SPECIAL_SAL VALUES(deptid, sal)
WHEN HIREDATE LIKE ('%00%') THEN
INTO HIREDATE_HISTORY_00 VALUES(deptid, hiredate)
WHEN HIREDATE LIKE ('%99%') THEN
INTO HIREDATE_HISTORY_99 VALUES(deptid, hiredate)
ELSE
INTO HIREDATE_HISTORY VALUES(deptid, hiredate)
SELECT department_id deptid, SUM(salary) sal, MAX(hire_date) hiredate
FROM EMPLOYEES
GROUP BY department_id;
------------------------------INSERT ALL
INTO SALES_INFO VALUES( employee_id, week_id, sales_mon)
INTO SALES_INFO VALUES( employee_id, week_id, sales_tue)
INTO SALES_INFO VALUES( employee_id, week_id, sales_wed)
INTO SALES_INFO VALUES( employee_id, week_id, sales_thur)
INTO SALES_INFO VALUES( employee_id, week_id, sales_fri)
SELECT employee_id, week_id, sales_mon, sales_tue, sales_wed, sales_thur, sales_fri
FROM SALES_SOURCE_DATA;
1.如果用insert into table_name values (field_name1,field_name2,field_name3)这个命令的话,每次只能插入一条记录.
2.insert into table_name1 select field_name1,field_name2 from table_name2 where +条件;用这个命令,可以从已存在的表table_name2中选择多条符合where 条件的记录一次性地插入table_name1表中.
select '1','w'
union
select '2','z'
union
...........
..........
PL/SQL Developer,这个工具就可以满足你的要求
用 insert into t1(col1)
select col1 from t2 where ...(条件.)
符合条件的t2中记录就算有一亿条, 也是会插入到t1的