Je cherchais à trier les tables par une colonne désignée comme donnée, et d'après ce que j'ai trouvé, il n'y a pas de moyen facile de le faire. Le meilleur que j'ai trouvé est une instruction switch:Est-il possible de commander par une colonne donnée un paramètre de procédure stockée dans SQL Server?
SELECT Column1, Column2, Column3, Column4
FROM Table
ORDER BY CASE WHEN @OrderBY = 'Column1' THEN Column1
WHEN @OrderBY = 'Column2' THEN Column2
WHEN @OrderBY = 'Column3' THEN Column3
WHEN @OrderBY = 'Column4' THEN Column4
Est-il possible de le faire sans avoir une déclaration CASE
comme ça? Si la table devient plus grande et que plus de colonnes doivent être triées, cela peut devenir désordonné. La seule façon de le faire est de concaténer une grosse chaîne SQL, ce qui annule les avantages des procédures stockées et rend le SQL difficile à écrire et à maintenir.
Dupe de http://stackoverflow.com/questions/149380/dynamic-sorting-within-sql-stored-procedures –