SQLServer2005中的独特查询
我有一个表,它有三个字段ID、Name、aDate。我希望结果的名称不同,我希望日期是结果。我使用query作为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-
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。确切地麦克斯,第一,最后,不管怎样。。。。但您需要决定在非分组字段中显示什么。