Dynamic order direction

前端 未结 5 2125
温柔的废话
温柔的废话 2020-12-03 07:11

I writing a SP that accepts as parameters column to sort and direction.

I don\'t want to use dynamic SQL.

The problem is with setting the direction parameter

5条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-03 07:37

    This works fine for me – (where, order by, direction,Pagination)

    parameters
    
    @orderColumn  int ,
    @orderDir  varchar(20),
    @start  int ,
    @limit  int
    
    
    select * from items
    WHERE        (items.status = 1) 
    order by 
    
    CASE WHEN @orderColumn = 0 AND @orderdir = 'desc' THEN items.[category] END DESC,    
    CASE WHEN @orderColumn = 0 AND @orderdir = 'asc' THEN items.[category] END ASC,    
    CASE WHEN @orderColumn = 1 AND @orderdir = 'desc' THEN items.[category] END DESC,
    CASE WHEN @orderColumn = 1 AND @orderdir = 'asc' THEN items.[category] END ASC,
    CASE WHEN @orderColumn = 2 AND @orderdir = 'desc' THEN items.[category] END DESC,
    CASE WHEN @orderColumn = 2 AND @orderdir = 'asc' THEN items.[category] END ASC
    
    OFFSET @start ROWS FETCH NEXT @limit ROWS ONLY
    

提交回复
热议问题