绝对经典的表记录操作(超越版)
***一次性插入多条记录:
table1表结构
-----------
id,name
-----------
同时插入多条记录:
insert into table1( id,name) values (1,'name1'),(2,'name2'),(3,'name3'),(4,'name4'),(5,'jname1');
///////////////////////////////////////////
***表与表之前的记录复制
table2,table3
-------------
id,name
-------------
将表table2中的数据复制到表table3中:
insert into table3 select name from table2
///////////////////////////////////////////
***建立表并从一个表中复制数据
create table mytable as select * from emp
///////////////////////////////////////////
***显示字段值占用百分比(绝对原创)
SELECT id,name,((CASE WHEN NAME='jname1' THEN 1 ELSE 0 END)*0.1 + (CASE WHEN NAME='name1' THEN 1 ELSE 0 END)*0.1) AS a FROM mytable
///////////////////////////////////////////
***一个复杂的记录插入操作
insert into T_EMPLOYEE_ROLE( employee_id,role_id, org_id )
select empid,roleid,orgid from (
select e.id empid,r.id roleid,o.id orgid ,(
select count(*) from T_EMPLOYEE_ROLE where employee_id=e.id and role_id=r.id and org_id=o.id
) ifExisted
from T_EMPLOYEE e,T_ROLE r,T_ORGANIZATION o
where e.id in (10001041,10001030, 111111111) --员工id串
and r.id in (3,1065, 22222222) --角色id串
and o.id in (10000000,10000002, 333333333) --组织id串 ) t
where ifExisted=0 --IFEXISTED=0的意思为:如果查出来的记录为0的话就插入,否则不作处理