在sql server 2008中返回结果集中的不同行

时间:2012-10-17 07:45:59

标签: sql-server-2008

如果特定列在sql server 2008中多次具有相同记录并按日期时间排序,如何选​​择不同行。 我在表格中有以下专栏:

  1. ID
  2. 用户名
  3. FILEID
  4. 日期时间
  5. 我尝试使用以下sql:

    SELECT DISTINCT(fileid) FROM [DatabaseName].[dbo].[TableName] where usernumber = '015578957'
    

    如何在上面的sql中选择其他列并按datetime列进行排序,并返回结果集行,其中fileid列是不同的。

1 个答案:

答案 0 :(得分:1)

select T.*
FROM [DatabaseName].[dbo].[TableName] T
JOIN
(
SELECT min(id) id, fileid
FROM [DatabaseName].[dbo].[TableName] 
group by fileid
)X ON T.id=X.id
where T.usernumber = '015578957'

如果要选择第一个不同的记录,请使用上述查询中的MIN,如果要检索最后一个,请使用MAX而不是MIN。