【问题标题】:razor sql error剃刀sql错误
【发布时间】:2012-09-06 08:00:12
【问题描述】:

我有这个剃须刀声明

sql = "SELECT * FROM CarBike" +
       "Order By id OFFSET @0 ROWS FETCH NEXT @1 ROWS ;";

var result = db.Query(sql, offset, pageSize);

我遇到了错误

Incorrect syntax near the keyword 'By'.
Invalid usage of the option NEXT in the FETCH statement.

System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'By'.
Invalid usage of the option NEXT in the FETCH statement.

请帮我纠正这个错误

【问题讨论】:

    标签: asp.net sql sql-server sql-server-2008


    【解决方案1】:

    CarBikeOrder by 之间需要一个空格

    sql = "SELECT * FROM CarBike" + 
       " Order By id OFFSET @0 ROWS FETCH NEXT @1 ROWS ;"; 
    

    注意:OFFSET/FETCH 仅适用于 SQL 2012+。

    在以前的版本中达到类似的结果

    select * from
    (
    select *, ROW_NUMBER() over (order by id) rn
    from CarBike
    ) v
    where rn between @0+1 and @0+@1
    order by id
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 2014-03-04
    • 1970-01-01
    • 2011-08-05
    • 2015-04-01
    • 2020-10-20
    相关资源
    最近更新 更多