J'ai un tas de tâches dans une base de données MySQL, et l'un des champs est "date limite". Pas chaque tâche doit avoir à une date limite. Je voudrais utiliser SQL pour trier les tâches par date limite, mais mettre celles sans date limite à l'arrière du jeu de résultats. Comme c'est le cas maintenant, les dates nulles apparaissent en premier, puis les autres sont triées par date limite au plus tard.Possibilité d'utiliser SQL pour trier par date mais mettre des dates nulles à la fin du jeu de résultats?
Des idées sur la façon de faire cela avec SQL seul? (Je peux le faire avec PHP si nécessaire, mais une solution SQL seule serait géniale.)
Merci!
+1. Voici une autre solution standard élégante et compacte (disponible depuis [SQL: 2003 extension T611] (http://en.wikipedia.org/wiki/Order_by), bien que tous les fournisseurs n'implémentent pas cette fonctionnalité): http://stackoverflow.com/ a/12767777/814702. – informatik01
@ informatik01, bonne astuce, mais cette question est étiquetée 'mysql' et MySQL ne supporte pas cette syntaxe. –
@BillKarwin Oui, triste. Seulement vérifié ceci sur PostgreSQL 9.1, où cela fonctionne très bien. Quoi qu'il en soit, laissez cette information être ici juste pour l'exhaustivité. P.S. Juste remarqué que lorsque vous utilisez 'ORDER BY' MySQL et PostgreSQL se comportent différemment: lors de la commande * ascendant * MySQL met les valeurs NULL ** en premier **, alors que PostgreSQL met les valeurs NULL ** en dernier **. Eh bien, des trucs spécifiques au vendeur ... – informatik01