假设您有一个返回n
结果的SQL查询,并且您希望仅返回1 to n-1
没有第一行(0)的结果。
当前查询位于http://data.stackexchange.com/stackoverflow/query/edit/73895
我想忽略第一行,因为它包含一个不完整的月份。
更新:我简化了任务,我通过使用基于当前日期的WHERE子句来删除最后一条记录更容易。
答案 0 :(得分:4)
你改变了问题。
;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;