如何消除SQL Server查询的第一个结果?

时间:2012-06-26 20:42:36

标签: sql-server

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

当前查询位于http://data.stackexchange.com/stackoverflow/query/edit/73895

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

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

1 个答案:

答案 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;