2012-03-23 84 views
-1

如何在SQL Server中正确执行以下查询!如何在表上选择不同的记录

上运行该查询

select distinct * from dbo.TableA 

它给了我错误的结果。它让我重复记录以及

对不起球员,我可能会问一个很简单的问题..但我GOOGLE了很多,但没得到任何卓见成效......

回答

2

它没有给你重复记录 - 这些“重复”中的每一个都会有一些与其他记录上的等价值不同的值。

如果你只想看到特定列的不同组合值,明确在查询中指定的那些列 - 如:

select distinct columnA, columnB, columnC from dbo.TableA 
+0

这是我的例子 表A '1 1' '1 1' 'b 1 2' 选择不同*会给我所有的结果作为:: '1 1' ' 1 1' 'b 1 2' 这真的应该给作为 '1 1' 'b 1 2' – Matthew 2012-03-23 11:05:15

+0

@Matthew:看我更新的答案 - 如果你只选择那些三个具体栏目,你会只有'1 1''b 1 2'。 – 2012-03-23 11:12:14

0
SELECT DISTINCT column_name(s) FROM table_name 
+0

如果我不想提及列名会怎么样?因为我的桌子上有300列 – Matthew 2012-03-23 11:04:13

0

如果没有主键字段,然后查询返回重复的记录否则你需要使用像:

select distinct column_name from table_name 
0

使用DISTINCT获取重复行是不可能的,因为这是唯一的功能:删除重复项。请记住,如果你的桌子上有PK,那么你所有的行都会有所不同。如果你没有PK(这听起来不对),那么你可能有一个日期时间字段,并且只能记录日期,但不是时间?

相关问题