sql server 2005中的不同查询

1 sql sql-server sql-server-2005

我有一个表有三个字段ID,Name,aDate.我希望结果在不同的名称,我希望日期在结果.我使用查询作为

Select distinct(Name),adate from table_name.
Run Code Online (Sandbox Code Playgroud)

但我得到了错误的结果.我认为sql在两个领域的组合上应用不同.我的确帮助了我.我想要不同的名称值及其各自的adate字段.

Sim*_*n S 6

如果您只需要每个名称一个日期,那么您必须指定哪个日期:

例如:

 SELECT Name, Max(aDate)
 FROM table_name
 GROUP BY Name
Run Code Online (Sandbox Code Playgroud)

由于此语句使用GROUP BY Name它,因此每个Name只返回一行.由于它使用了aDate的聚合(在我的例子中是MAX()函数),它将返回你想要的相应日期.

通常,您应该尽量避免使用DISTINCT关键字.它很少是正确的方法.

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

 SELECT DISTINCT Name
 FROM table_name
Run Code Online (Sandbox Code Playgroud)

这将返回相同的结果

 SELECT Name
 FROM table_name
 GROUP BY Name
Run Code Online (Sandbox Code Playgroud)