假设您有一个返回n
结果的 SQL 查询,并且您只想返回1 to n-1
没有第一行 (0) 的结果。
当前查询可在https://data.stackexchange.com/stackoverflow/query/edit/73895获得
我想忽略第一行,因为它包含一个不完整的月份。
更新:我简化了任务,为了删除最后一条记录,使用基于当前日期的 WHERE 子句更容易。
假设您有一个返回n
结果的 SQL 查询,并且您只想返回1 to n-1
没有第一行 (0) 的结果。
当前查询可在https://data.stackexchange.com/stackoverflow/query/edit/73895获得
我想忽略第一行,因为它包含一个不完整的月份。
更新:我简化了任务,为了删除最后一条记录,使用基于当前日期的 WHERE 子句更容易。
你改变了问题。
;WITH x AS
(
SELECT col,
fr = ROW_NUMBER() OVER (ORDER BY ordering_col)
FROM dbo.table
)
SELECT col FROM x
WHERE fr > 1;
对于原始问题(不包括第一行和最后一行),这将产生两种情况:
;WITH x AS
(
SELECT col,
fr = ROW_NUMBER() OVER (ORDER BY ordering_col),
lr = ROW_NUMBER() OVER (ORDER BY ordering_col DESC)
FROM dbo.table
)
SELECT col FROM x
WHERE fr <> 1 AND lr <> 1;