SQLSERVER从记录集中获取最后一条记录

时间:2015-06-12 05:50:02

标签: sql sql-server

如何获得最后一条记录

strConnStr = "Provider=SQLNCLI11;..."
Set cn = server.CreateObject("ADODB.Connection")
    cn.Open strConnStr
    strSQL = "SELECT DISTINCT year1 FROM cars WHERE year1 > 1900 ORDER BY year1;" 
Set rs = Server.CreateObject("ADODB.Recordset")
Set rs.ActiveConnection = cn
    rs.Open strSQL
    YearList = rs.GetRows()
    rs.MoveLast
    MaxYear = rs.Fields(0)
cn.Close 
set rs = Nothing
set cn = nothing    

response.write MaxYear 

什么都不返回,我也试过MaxYear = rs(0)MaxYear = rs("Year1")都没有返回任何内容

我不需要改变strSQL !!!

我在rs.movelast上也收到错误

  

Microsoft SQL Server Native Client 11.0错误' 80040e24'

     

Rowset不支持向后提取。

3 个答案:

答案 0 :(得分:1)

您可以使用TOP关键字获取最新记录:

SELECT TOP 1 year1 FROM cars WHERE year1 > 1900 
group by year1 
ORDER BY year1 desc;

答案 1 :(得分:1)

您可以使用TOP关键字获取最新的记录,如此

{{1}}

答案 2 :(得分:1)

基于更新:

Set rs.ActiveConnection = cn
    rs.Open strSQL
    YearList = rs.GetRows()
    MaxYear = YearList(0,UBound(YearList))
cn.Close 

旧答案:

如果你坚持不改变SQL(因此强迫服务器对你要丢弃的数据做更多的工作),那么你只需要遍历整个记录集:

<击>
rs.Open strSQL
while Not rs.EOF
  YearArr = rs.Fields(0)
  rs.MoveNext
Wend

<击>