是否可以在COALESCE SQL Server中使用IF语句

时间:2020-09-24 08:26:47

标签: sql sql-server

我有一个用于分页的合并声明。但是我想像这样在其中使用IF语句:

OFFSET (@PageNumber - 1) * COALESCE(@RowsPerPage, IF(@TotalNumberOfRows > 1000, 1000, @TotalNumberOfRows), 0) ROWS

因此,如果尚未设置@RowsPerPage的数量,那么它将使用查询返回的@TotalNumberOfRows。但是,如果@TotalNumberOfRows超过1000,我希望它使用1000。

我得到的错误是:

关键字“ IF”附近的语法不正确。

1 个答案:

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