J'aimerais pouvoir (effectivement) trier une vue de base de données. Je sais que, conceptuellement, l'ordre dans une vue de base de données n'est pas valable, mais je dois faire face au scénario suivant :
- une application tierce, qui lit les données des tables de la base de données à l'aide d'une instruction select(*) from tablename.
- l'application patrimoniale est très sensible à l'ordre des enregistrements.
- une application que j'ai écrite pour permettre aux utilisateurs de gérer plus facilement les données des tables, mais les insertions et les suppressions de la table bouleversent naturellement l'ordre des enregistrements.
Si je modifiais l'instruction de l'ancienne application en sélectionnant (*) à partir du nom de l'onglet et en ordonnant par champ, mon problème serait résolu, mais ce n'est pas possible.
J'ai donc mis en place une table d'attente dans laquelle les données peuvent être exportées dans le bon ordre, mais cette option est gourmande en ressources, signifie que les données ne sont pas "vivantes" dans l'application existante et représente un travail supplémentaire pour les utilisateurs.
J'aimerais pouvoir obtenir une version ordonnée du tableau avec ces contraintes. Comment faire ?
Mise à jour - Je travaille avec Sybase 12.5, mais j'aimerais éviter une solution étroitement couplée avec un SGBDR spécifique - cela pourrait changer.
Je ne peux pas ajouter une clause "order by" à une vue, en raison des normes SQL mentionnées dans le document suivant cette entrée de Wikipedia