SQLServer2005中的独特查询

SQLServer2005中的独特查询,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我有一个表,它有三个字段ID、Name、aDate。我希望结果的名称不同,我希望日期是结果。我使用query作为 Select distinct(Name),adate from table_name. 但我得到了错误的结果。我认为sql应用于这两个字段的组合是不同的。我所做的帮助我。我希望在各自的adate字段中使用不同的名称值。distinct不适用于一个字段,它适用于查询中的整行字段。 所以你所问的没有意义 如果您的表中有这样的行 |ID|Name|Date| |1|John|2011-

我有一个表,它有三个字段ID、Name、aDate。我希望结果的名称不同,我希望日期是结果。我使用query作为

Select distinct(Name),adate from table_name.

但我得到了错误的结果。我认为sql应用于这两个字段的组合是不同的。我所做的帮助我。我希望在各自的adate字段中使用不同的名称值。

distinct不适用于一个字段,它适用于查询中的整行字段。 所以你所问的没有意义

如果您的表中有这样的行

|ID|Name|Date|
|1|John|2011-4-1|
|2|John|2011-4-2|
|3|John|2011-4-2|
然后,当您调用
时,选择不同的名称、日期
您希望在日期列中看到什么


您需要决定哪个日期。

Distinct不适用于一个字段,它适用于查询中的整行字段。 所以你所问的没有意义

如果您的表中有这样的行

|ID|Name|Date|
|1|John|2011-4-1|
|2|John|2011-4-2|
|3|John|2011-4-2|
然后,当您调用
时,选择不同的名称、日期
您希望在日期列中看到什么


您需要决定哪个日期。

如果每个姓名只需要一个日期,则必须指定哪个日期:

例如:

由于此语句使用了
按名称分组
,因此它只会为每个名称返回一行。由于它使用aDate的聚合(在我的示例中是
MAX()
函数),因此它将返回您想要的适当日期

一般来说,您应该尽量避免使用DISTINCT关键字。这很少是正确的方法

如果您只是想在表中使用不同名称的列表,可以使用

 SELECT DISTINCT Name
 FROM table_name
它将返回与相同的结果

 SELECT Name
 FROM table_name
 GROUP BY Name

如果每个姓名只需要一个日期,则必须指定以下日期:

例如:

由于此语句使用了
按名称分组
,因此它只会为每个名称返回一行。由于它使用aDate的聚合(在我的示例中是
MAX()
函数),因此它将返回您想要的适当日期

一般来说,您应该尽量避免使用DISTINCT关键字。这很少是正确的方法

如果您只是想在表中使用不同名称的列表,可以使用

 SELECT DISTINCT Name
 FROM table_name
它将返回与相同的结果

 SELECT Name
 FROM table_name
 GROUP BY Name

是他们在一个字段上执行distinct的任何其他方式是他们在一个字段上执行distinct的任何其他方式+1。确切地麦克斯,第一,最后,不管怎样。。。。但您需要决定在非分组字段中显示什么。+1。确切地麦克斯,第一,最后,不管怎样。。。。但您需要决定在非分组字段中显示什么。