Comment faire un ORDER BY dynamique avec une direction?
Bonjour à tous,
Je travaille en ASP.NET 2.0 (C#) et sous MS-SQL 2005. J'ai une Procédure Stockée qui est appellée avec commes paramètres : - @sortDir : direction du tri (ASC / DESC)
- @sortField : la colonne ou l'alias du SELECT qui sera utilisé pour le tri
Je souhaite effectuer dynamiquement la clause ORDER BY de ma requête SQL.. On ne peut pas utiliser directement un Alias dans la clause ORDER BY donc j'ai fait :
Code:
1 2 3 4 5 6 7 8
| ORDER BY
CASE @sortField
WHEN 'Name' THEN event_name
WHEN 'Date' THEN dt_stopreg
WHEN 'Rank' THEN (SUM(rank_votes) / SUM(rank_nbvotes))
WHEN 'Amount' THEN SUM(amount)
WHEN 'Nb' THEN COUNT(id_b)
END |
Le soucis est que je ne peux pas ajouter à la suite un autre CASE @sortDir car ca me met une erreur. Donc, comment faire en sorte (sans construire une String qui contient la requete) pour ajouter simplement le ASC/DESC?
Merci d'avance :-)