首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

问一个比较复杂点的语句,帮上忙

2013-01-26 
问一个比较复杂点的语句,帮下忙有两张表,一张人员表,一张卡号表,人员表里每一个人对应卡号表里的一个或多

问一个比较复杂点的语句,帮下忙
有两张表,一张人员表,一张卡号表,人员表里每一个人对应卡号表里的一个或多个卡号,有没有办法删除卡号表里多余的数据使每一个人对应一个卡号,人对应多个卡号的随便保留一个就可以了,请问下这个语句怎么写?触发器什么的都可以,谢谢呀。
[解决办法]

delete a
from (select *,Row_number()over(partition by 人员ID order by 卡号) as Row from 卡号表)as a
where Row>1

[解决办法]
参考http://bbs.csdn.net/topics/240034273
[解决办法]


delete a
from 卡号表 as a
where exists(select 1 from 卡号表 where 人员ID=a.人员ID and ID>a.ID)--ID为表的唯一列如:卡号

[解决办法]
;with cte as
(select *,row_number() over(partition by uid order by cardno) as rn from cards )
delete from cte where rn>1

热点排行