我有一个用于分页的合并声明。但是我想像这样在其中使用IF语句:
OFFSET (@PageNumber - 1) * COALESCE(@RowsPerPage, IF(@TotalNumberOfRows > 1000, 1000, @TotalNumberOfRows), 0) ROWS
因此,如果尚未设置@RowsPerPage
的数量,那么它将使用查询返回的@TotalNumberOfRows
。但是,如果@TotalNumberOfRows
超过1000,我希望它使用1000。
我得到的错误是:
关键字“ IF”附近的语法不正确。
答案 0 :(得分:0)
此:
OFFSET (@PageNumber - 1) * COALESCE(@RowsPerPage,IIF(@TotalNumberOfRows > 1000, 1000, @TotalNumberOfRows),0) ROWS
或
OFFSET (@PageNumber - 1) * COALESCE(@RowsPerPage,CASE WHEN @TotalNumberOfRows > 1000 THEN 1000 ELSE @TotalNumberOfRows END,0) ROWS