Scrivo un SP che accetta come colonna parametri per ordinare e direzione.Direzione ordine dinamico
Non voglio utilizzare SQL dinamico.
Il problema è con l'impostazione del parametro di direzione.
Questo è il codice parziale:
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
mi sento di raccomandare la raccolta di conversione patt ern per AddedDate che si assicura che le stringhe di caratteri si ordinino in ordine di data. Credo che la conversione predefinita possa cambiare con le impostazioni della località. Meglio definire in modo esplicito ed essere sicuro. –
Si applica ad altri tipi? O solo la DATA? – markiz
Anche i numeri saranno un problema. Ad esempio, la conversione da 10, 1 e 2 a varchar ti darà una sorta di '1', '10', '2'. Immagino che stai convertendo Visible e AddedDate in varchar perché un CASE deve restituire tutti lo stesso tipo, corretto? –