当前位置: 代码迷 >> Sql Server >> Order By 根据条件判断升序还是降序的有关问题
  详细解决方案

Order By 根据条件判断升序还是降序的有关问题

热度:33   发布时间:2016-04-24 10:34:25.0
Order By 根据条件判断升序还是降序的问题
想要实现这么个效果,就是Order By 根据条件判断升序还是降序。下面是错误的代码:
DECLARE @i INT
SET @i = 1

SELECT * FROM s_BO_History
ORDER BY  Id
CASE WHEN @i = 1 THEN
DESC
ELSE
ASC
END 

SQL 有几种这样的实现方法? 拼SQL 然后EXEC 是可以的。但是我想实现类似上面代码的结构,可行么?
------解决方案--------------------
方法2,

declare @i int
set @i=1

declare @tsql varchar(6000)

select @tsql='SELECT * FROM s_BO_History ORDER BY Id '
            +CASE WHEN @i=1 then 'DESC' else 'ASC' END 

exec(@tsql)

------解决方案--------------------

DECLARE @i INT;
SET @i=1;

;WITH s_BO_History AS
(
  SELECT * FROM History 
)
SELECT * 
 into #t
 FROM s_BO_History

if @i=1
begin
 select * from #t order by Id DESC
end
else
begin
 select * from #t order by Id ASC
end
  相关解决方案