在MS SQL Server中,可以使用窗口函数和CTE(公共表表达式)来实现按组删除除第一个和最后一个值之外的所有值(连续)。
首先,我们可以使用ROW_NUMBER()函数给每个组内的行分配一个序号。然后,使用CTE将这些序号作为过滤条件,删除除第一个和最后一个值之外的所有值。
以下是具体的SQL查询语句:
WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY [组列] ORDER BY [排序列]) AS RowNum
FROM [表名]
)
DELETE FROM CTE
WHERE RowNum > 1 AND RowNum < (SELECT MAX(RowNum) FROM CTE)
请注意,上述查询语句中的[组列]是指用于分组的列名,[排序列]是指用于确定每个组内行的顺序的列名,[表名]是指要操作的表名。
这样,除了每个组的第一个和最后一个值之外的所有连续值将被删除。
对于MS SQL Server,腾讯云提供了云数据库SQL Server(CDB for SQL Server)产品,它是一种高性能、可扩展的关系型数据库服务。您可以在腾讯云官网了解更多关于云数据库SQL Server的信息:云数据库SQL Server产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云