Dynamique de la commande de direction

J'ai écrit un SP qui accepte en tant que paramètres de colonne pour trier et de direction.

Je ne veux pas utiliser le SQL dynamique.

Le problème est avec le réglage du paramètre de direction.

C'est le partiel code:

SET @OrderByColumn = 'AddedDate'
SET @OrderDirection = 1;



ORDER BY 
    CASE WHEN @OrderByColumn = 'AddedDate' THEN CONVERT(varchar(50), AddedDate)
        WHEN @OrderByColumn = 'Visible' THEN CONVERT(varchar(2), Visible)
        WHEN @OrderByColumn = 'AddedBy' THEN AddedBy
        WHEN @OrderByColumn = 'Title' THEN Title    
    END
  • Je recommande la cueillette de conversion de modèle pour AddedDate qui permet de s'assurer que les chaînes de caractères seront trier en ordre de date. Je crois que le défaut convertir peut changer avec la localité paramètres. Mieux définir explicitement et être en sécurité.
  • Il ne s'applique pas à certains autres types? Ou tout simplement la DATE?
  • Les numéros sont également un problème. Par exemple la conversion de 10, 1 et 2 varchar vous donnera une sorte de '1', '10', '2'. J'imagine que vous êtes la conversion Visible et AddedDate varchar en raison d'un CAS de retour tout de même type, correct?
InformationsquelleAutor markiz | 2009-07-18