Как выбрать последний / последний отредактированный ряд в Sql Server 2008? - PullRequest
0 голосов
/ 25 мая 2018

У меня есть таблица T1, которая содержит идентификатор и имя.Если имя обновляется из внешнего интерфейса, то создается новая строка с обновленным именем, следовательно, создаются две строки для одного и того же идентификатора.Я хочу получить последнюю или последнюю обновленную строку из таблицы. Примечание: таблица не захватывает столбец даты или времени .Ниже приведен пример, здесь я должен получить последнюю запись с именем Albert Dazy. Я использую Sql Server 2008

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

Я не фиксирую время для записи, это можно сделать без логики даты и времени?Мол, внутренне рассчитать логику времени?

1 Ответ

0 голосов
/ 25 мая 2018

Этот запрос должен дать желаемые результаты.

;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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...