【问题标题】:How to select the last / latest edited row in Sql Server 2008?如何在 Sql Server 2008 中选择最后/最新编辑的行?
【发布时间】:2018-05-25 17:34:50
【问题描述】:

我有一个表 T1,其中包含 id 和 name。如果名称是从前端更新的,则它会创建一个具有更新名称的新行,从而为相同的 id 创建两行。我想从表中获取最后或最新更新的行。 注意:该表未捕获任何日期或时间列。下面是示例,这里我必须获取名为 Albert Dazy 的最新记录。 我使用的是 Sql Server 2008

Table T1:
    |---------------------|------------------|
    |     id              |   name           |
    |---------------------|------------------|
    |      abc_0011       |      Albert      |
    |---------------------|------------------|
    |      abc_0011       |      Dazy        |
    |---------------------|------------------|
    |      abc_0011       |      Albert Dazy |
    |---------------------|------------------|

我没有记录时间,是否可以在没有日期时间逻辑的情况下完成?比如,内部计算时间的逻辑?

【问题讨论】:

    标签: sql-server-2008


    【解决方案1】:

    这个查询应该会给你想要的结果。

    ;with CTE as(
    select ID,name,row_number()over(partition by id order by id desc) RID
    from #tmp
    )
    select C.ID,C.Name from CTE C JOIN (select max(RID) MRID,ID FROM CTE GROUP BY ID) T ON C.RID=T.MRID AND C.id=T.id
    

    【讨论】:

      猜你喜欢
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      相关资源
      最近更新 更多