相关疑难解决方法(0)

陷入了对t-SQL中单个表的选择性DELETE语句

说,我有一个像这样的表(SQL Server 2008):

CREATE TABLE tbl (ID INT, dtIn DATETIME2, dtOut DATETIME2, Type INT)

INSERT tbl VALUES
(1, '05:00', '6:00', 1),  -- will be removed
(2, '05:00', '7:00', 1),  -- will be removed
(3, '05:01', '8:00', 1),
(4, '05:00', '8:00', 1),
(5, '05:00', '6:00', 2),  -- will be removed
(6, '05:00', '7:00', 2),
(7, '05:00', '7:00', 3),
(8, '04:00', '7:00', 3)
Run Code Online (Sandbox Code Playgroud)

我需要删除相同'类型'的所有记录(如果找到2个或更多),使用相同的'dtIn'作为'type',除了具有最大'dtOut'的记录.换句话说,上表应该导致:

(3, '05:01', '8:00', 1),   -- no matching 'dtIn' for 'type' = 1
(4, '05:00', '8:00', 1),   -- largest …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-delete

2
推荐指数
1
解决办法
457
查看次数

标签 统计

sql ×1

sql-delete ×1

sql-server ×1

t-sql ×1