ORDER SQL condicional por ASC / DESC para colunas alfa

Escrevendo um procedimento armazenado no MS SQL Server 2008 R2, desejo evitar o uso do DSQL ...

Eu gostaria que o método de classificação (ASC ou DESC) fosse condicional.

Agora, com uma coluna numérica, eu simplesmente usaria uma declaração de caso e negaria o valor para emular ASC ou DESC ... Ou seja:

... ORDER BY CASE @OrderAscOrDesc WHEN 0 THEN [NumericColumn] ELSE -[NumericColumn] END ASC

Qual é o método apropriado para fazer isso com uma coluna alfa?

EDIT: Pensei de uma maneira inteligente, mas parece terrivelmente ineficiente ... Eu poderia inserir minha coluna alfa ordenada em uma tabela temporária com um número automático e depois classificá-lo usando o método descrito acima.

EDIT2:

O que vocês acham dessa abordagem?

ORDER BY CASE @OrderAscOrDesc WHEN 0 THEN [AlphaColumn] ELSE '' END ASC,
CASE @OrderAscOrDesc WHEN 0 THEN '' ELSE [AlphaColumn] END DESC

Não sei se forçar uma ordenação em uma coluna uniforme é mais eficiente do que derivar números de cadeias ordenadas

questionAnswers(2)

yourAnswerToTheQuestion