ne changez pas la ASC
ou DESC
, changer le signe de la chose étant triée par:
SELECT * FROM table
ORDER BY
CASE WHEN @Direction = 1 THEN -id else id END asc;
L'OP demande:
Les gars, je ne suis pas l'expert SQL, s'il vous plaît me expliquer ce que signifie l'identité et -id, est-elle contrôle la direction de commande?
id est la colonne que vous triez; -id est juste la négation de cela, id * -1. Si vous triez par plus d'une colonne, vous devrez annuler chaque colonne:
SELECT * FROM table
ORDER BY
CASE WHEN @Direction = 1 THEN -id else id END
CASE WHEN @Direction = 1 THEN -othercolumn else othercolumn END ;
Si vous commandez par une colonne non numérique, vous aurez besoin de trouver une expression qui fait cette colonne "négatif"; écrire une fonction pour le faire peut aider.
Les gars, je ne suis pas l'expert SQL, s'il vous plaît expliquez-moi ce que signifie l'ID et -id, contrôle-t-il le sens de la commande? – Shimmy
En outre, j'ai modifié ma requête, veuillez la consulter. – Shimmy
Donc je n'ai pas besoin d'écrire ASC, n'est-ce pas? – Shimmy