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字段.
如果您只需要每个名称一个日期,那么您必须指定哪个日期:
例如:
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)