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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :-)