删除TSQL列中的重复项

删除TSQL列中的重复项

问题描述:

想知道任何人都可以帮助我。 我有一个存储过程是这样的日期输出:删除TSQL列中的重复项

Year AccountName Certs MoreCerts 
2015 Rosy  3650097 444455 
2015 Rosy  3650097 5645665 
2015 Rosy  3650097 4544 
2015 Rosy  3650097 33423 
2015 Rosy  3650097 232454 
2014 Rosy  112379  6767878 
2014 Rosy 112379 68878 
2014 Rosy 112379 567 
2014 Rosy 112379 567 
2014 Rosy 112379 4567 
2014 Rosy 112379 345667 
2015 John 12000 23456 
2015 John 12000 23345 
2015 John 12000 2111 
2015 John 12000 456 
2014 John 50000 887 
2014 John 50000 43432 
2014 John 50000 2333 

,我想有这样即从证证书列中删除重复值,而在表中保留一切,因为它是

Year AccountName Certs  MoreCerts 
2015 Rosy   3650097  444455 
2015 Rosy      5645665 
2015 Rosy      4544 
2015 Rosy      33423 
2015 Rosy      232454 
2014 Rosy   112379  6767878 
2014 Rosy      68878 
2014 Rosy      567 
2014 Rosy      567 
2014 Rosy      4567 
2014 Rosy      345667 
2015 John   12000   23456 
2015 John      23345 
2015 John      2111 
2015 John      456 
2014 John   50000   887 
2014 John      43432 
2014 John      2333 

尝试row_number和子选择等,但无法弄清楚。 任何帮助请问?

+0

如何在此添加表格? – user2718203

+0

你可以使用sql_fiddle –

像这样的东西应该工作:

select 
    Year, AccountName, case when rownum=1 then Certs else '' end as Certs, MoreCerts 
from (
    select *, row_number() over (partition by Certs order by MoreCerts) [rownum] 
    from your_table 
) x 
order by x.Certs, rownum 

根据您的资料,您不妨列添加到分区的和/或订单的ROW_NUMBER改变()。

+0

我认为你需要在下面的行中将'Cert'转换为空。即当rownum = 1时,则CAST(Certs as varchar)else''结束,如同Certs – Sahi

+0

完美!那正是我想要的。像魅力一样工作。非常感谢@Blorgbeard。上帝祝福你。 – user2718203

+0

谢谢@Sahi它的工作 – user2718203