0

假设您有一个返回n结果的 SQL 查询,并且您只想返回1 to n-1没有第一行 (0) 的结果。

当前查询可在https://data.stackexchange.com/stackoverflow/query/edit/73895获得

我想忽略第一行,因为它包含一个不完整的月份。

更新:我简化了任务,为了删除最后一条记录,使用基于当前日期的 WHERE 子句更容易。

4

1 回答 1

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;
于 2012-06-26T20:49:38.667 回答