Sql 保存从今天开始的最新记录';表中的日期
我需要有关计划在SSIS中使用的update/delete语句的帮助。我有以下记录表:Sql 保存从今天开始的最新记录';表中的日期,sql,sql-update,sql-server-2016,sql-delete,getdate,Sql,Sql Update,Sql Server 2016,Sql Delete,Getdate,我需要有关计划在SSIS中使用的update/delete语句的帮助。我有以下记录表: 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 我想更新该表,以便保留今天(3/7/19)的最新记录,但删除今天日期的旧记录 更新后的表
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
我想更新该表,以便保留今天(3/7/19)的最新记录,但删除今天日期的旧记录
更新后的表应如下所示:
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());
太快了+谢谢你在我脑子里看到整个声明之前把它打印出来。非常感谢戈登!