在MS SQL Server 2008 R2中编写存储过程,我想避免使用DSQL ...
我希望sort方法(ASC或DESC)是有条件的.
现在,使用数字列,我只需使用case语句并取消值来模拟ASC或DESC ......即:
... ORDER BY CASE @OrderAscOrDesc WHEN 0 THEN [NumericColumn] ELSE -[NumericColumn] END ASC
Run Code Online (Sandbox Code Playgroud)
使用alpha列执行此操作的适当方法是什么?
编辑:我想到了一个聪明的方法,但它看起来非常低效......我可以将我的有序alpha列插入带有自动编号的临时表中,然后使用上述方法按自动编号排序.
EDIT2:
你们怎么看待这种方法?
ORDER BY CASE @OrderAscOrDesc WHEN 0 THEN [AlphaColumn] ELSE '' END ASC,
CASE @OrderAscOrDesc WHEN 0 THEN '' ELSE [AlphaColumn] END DESC
Run Code Online (Sandbox Code Playgroud)
我不知道是否强制对统一列进行排序比从排序字符串中导出数字更有效