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

本文介绍了SQL中一次性插入多条记录、表间数据复制、建立表并复制数据、显示字段值百分比以及复杂记录插入操作的方法。通过实例演示了如何高效地进行数据库管理与数据迁移。

***一次性插入多条记录:
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的话就插入,否则不作处理

转载于:https://www.cnblogs.com/cyjch/archive/2012/03/01/2376261.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值