Je devine EventDate
est un caractère ou un varchar et non une date, sinon votre commande par clause serait correcte.
Vous pouvez utiliser CONVERT pour changer les valeurs en une date et trier par cela
SELECT *
FROM
vw_view
ORDER BY
CONVERT(DateTime, EventDate,101) DESC
Le problème avec cela est, comme le souligne Sparky dans les commentaires, si EventDate a une valeur qui ne peut pas être convertie en une date, la requête ne s'exécutera pas.
Cela signifie que vous devez soit exclure les mauvaises lignes, soit laisser les mauvaises lignes aller au bas des résultats
Pour exclure les mauvaises lignes, ajoutez simplement WHERE IsDate(EventDate) = 1
Pour laisser les mauvaises dates aller vers le bas, vous devez utiliser CASE
ex.
ORDER BY
CASE
WHEN IsDate(EventDate) = 1 THEN CONVERT(DateTime, EventDate,101)
ELSE null
END DESC