billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 2014
-
20 déc. 2007 à 12:09
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 2014
-
20 déc. 2007 à 12:27
Bonjour à tous,
Alors voila, je suis en train de travailler sur une procédure stockée et je voudrais savoir comment rendre dynamique mon order by pour le sorting. En effet, j'ai déjà trouver mon bonheur afin de le rendre dynamique sur la colonne à trier. Voici mon exemple:
DECLARE @ColOrder varchar(50)
SET @ColOrder = 'Name'
SELECT * FROM Person
ORDER BY
CASE @ColOrder WHEN 'Name' THEN Name END,
CASE @ColOrder WHEN 'Age' THEN Age END,
CASE @ColOrder WHEN 'Gender' THEN Gender END
Totu ceci fonctionne parfaitement. Seulement, je voudrais pouvoir rendre dynamique le tri ascendant ou descendant (ASC ou DESC)
J'ai essayé en ajoutant la ligne :
CASE @ColOrder WHEN 'Name Desc' THEN Name DESC END,
Mais cela ne fonctionne pas, il aime pas trop le mot clé ^^
Je m'en remet donc à vous si vous avez une petit idée.
Merci d'avance,
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 20 déc. 2007 à 12:27
Re,
Autant pour moi, cela marche si on modifie un tant soit peu la ligne que j'avais rajouté. Cela donne donc:
SELECT * FROM Person
ORDER BY
CASE @ColOrder WHEN 'Name' THEN Name END,
CASE @ColOrder WHEN 'Name Desc' THEN Name END DESC,
CASE @ColOrder WHEN 'Age' THEN Age END,
CASE @ColOrder WHEN 'Age Desc' THEN Name END DESC,
CASE @ColOrder WHEN 'Gender' THEN Gender END,
CASE @ColOrder WHEN 'Gender Desc' THEN Name END DESC
Merci quand même et désolé pour le dérangement ^^
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------