不同的SQL查询

时间:2010-11-05 13:40:34

标签: sql sql-server

我有一个SQL Server 2008数据库,表中包含以下信息:

ID  Name
--  ----
1   John
2   Jill
3   John
4   Phil
5   Matt
6   Jill

我想在下拉列表中显示唯一名称。因此,我只需要一个与唯一名称相关联的ID。我知道它很脏。我没有制造这个烂摊子。我只需要使用其中一个ID的唯一名称。如何编写将执行此操作的查询?我知道由于ID字段,以下内容不起作用。

SELECT DISTINCT
  [ID], [Name]
FROM
  MyTable

2 个答案:

答案 0 :(得分:16)

SELECT MIN(ID) AS ID, [Name]
FROM MyTable
GROUP BY [Name]

这将返回每个不同名称的第一个(即MINimum)ID

答案 1 :(得分:0)

您也可以使用等级超过功能

SELECT
Id,
Name
FROM
(
    SELECT 
    Id,
    [Name],
    RANK() OVER (PARTITION BY [Name] Order By Id) As Idx
    FROM Test
) A
WHERE Idx = 1

要了解排名超过函数,请阅读: http://msdn.microsoft.com/en-us/library/ms176102.aspx