无需重复SQL Server 2008即可检索数据

时间:2015-11-17 13:30:41

标签: sql-server sql-server-2008

我试图检索数据"所有列"从一个表没有重复,我使用Select count (distinct column_name)检索没有重复的行总数,它是14000行,每次我试图检索14000行"数据",我得到了满有20000行的表。

这是我使用的SQL语句

select * 
from Table_name 
where [Column_name] in (select distinct [Column_name] from Table_name)

我也试过

select * 
from Table_name 
where [Column_name] in (select  [Column_name] 
                        from Table_name 
                        group by [Column_name] )

我仍然可以获得20000行。

注意:此列的数据类型为nvarchar(255)

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:0)

如果你想要每列一行,那么你需要做更多的工作。 SELECT DISTINCT适用于所有列。这是一种方法:

select t.*
from (select t.*,
             row_number() over (partition by column_name order by (select NULL)) as seqnum
      from table_name t
     ) t
where seqnum = 1;

这将为column_name中的每个值返回一个任意行。