我需要有关我计划在SSIS中使用的更新/删除语句的帮助。我有以下记录表:
Record DateCreated TimeCreated
1 3/7/19 11:00AM
2 3/7/19 8:00AM
3 2/5/19 9:00AM
4 2/6/19 10:00AM
我想更新表格,以便保留今天日期(2009年3月7日)的最新记录,但从今天的日期中删除旧记录。
更新后,表格应如下所示:
Record DateCreated TimeCreated
1 3/7/19 11:00AM
3 2/5/19 9:00AM
4 2/6/19 10:00AM
如果今天的日期有超过2条记录(例如3,4等),我希望它保留唯一最新的记录。
有人可以帮我解决这个需要的更新/删除声明吗?
您可以使用可更新的CTE:
with todelete as (
select t.*,
row_number() over (partition by datecreated order by timecreated desc) as seqnum
from t
)
delete from todelete
where seqnum > 1 and
datecreated = convert(date, getdate());