您的位置:首页 > 其它

绝对经典的表记录操作(超越整理)

2016-05-25 18:43 316 查看
***一次性插入多条记录:

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的话就插入,否则不作处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: