在MS SQL Server 2008 R2中编写存储过程,我想避免使用DSQL ...条件SQL ORDER BY ASC/DESC为阿尔法列
我想排序法(ASC或DESC)是有条件的。
如今,随着数字列我会简单地用一个case语句和否定价值效仿ASC或DESC ... 即:
... ORDER BY CASE @OrderAscOrDesc WHEN 0 THEN [NumericColumn] ELSE -[NumericColumn] END ASC
什么是有这样一个合适的方法alpha列?
编辑:我想到一个聪明的方式,但它似乎非常低效......我可以插入我的有序alpha列到自动编号的临时表中,然后使用上述方法按自动编号排序。
EDIT2:
你们认为这种做法是什么?
ORDER BY CASE @OrderAscOrDesc WHEN 0 THEN [AlphaColumn] ELSE '' END ASC,
CASE @OrderAscOrDesc WHEN 0 THEN '' ELSE [AlphaColumn] END DESC
我不知道,如果强制排序上均匀柱比从排序字符串获得数字虽然
聪明,非常类似于我的解决方案我张贴的编辑。我希望得到比导出数据的另一个排序副本更有效率的东西,以产生一个数字排序顺序.... – Matthew 2010-10-07 19:00:40
@Matthew PK:你必须用字符串代替匹配的数字,或者为非相关案件。没有*真的*聪明我很害怕 – gbn 2010-10-07 19:04:21
您如何看待我的第二次编辑中的“两个ORDER BY子句”方法? – Matthew 2010-10-07 19:32:34