T-SQL去除重复行
Posted One is never too old to learn.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了T-SQL去除重复行相关的知识,希望对你有一定的参考价值。
例子:
CREATE TABLE [dbo].[testDT]( [bh] [varchar](50) NULL, [name] [varchar](50) NULL, [gender] [int] NULL, [email] [varchar](50) NULL )
测试数据:
12 li 1 122@qq.com 12 li 1 133@qq.com 15 wang 0 33@qq.com 13 zhang 1 22@qq.com 13 zhang 1 22@qq.com
思路:
1. distinct筛选出来, 使用temp表来回倒。
2. 使用row_number() partition by 方法。如果重复行row_number会出现多个,例如1,2,3,删除row_number>1的行。
--sql 2005
select bh , name , sex , email from
(
select t.* , row_number() over(partition by bh order by name , sex , email) px from testdt t
) m
where px = 1
3. group by 方法,其实相当于partition by的方法。
以上是关于T-SQL去除重复行的主要内容,如果未能解决你的问题,请参考以下文章