我正在尝试获取第二高的采样日期并出现以下错误,请让我知道我在哪里做错了

(SELECT* FROM resheader WHERE sampledate =
   (SELECT MAX(sampleDate) FROM resheader
      WHERE sampleDate < (SELECT MAX(sampleDate) FROM resheader)
   )
) as 'Previous Sample'

错误

消息116,级别16,状态1,第12行
未在子查询中引入子查询时在选择列表中指定
存在。

最佳答案

在SQL Server 2012中,可以使用 OFFSET FETCH 子句获取第二行(按所需条件排序后):

SELECT * FROM resheader
ORDER BY sampledate DESC
OFFSET 1 ROWS
FETCH NEXT 1 ROWS ONLY

10-04 14:11