Étant donné une table de trajets aériens unitaires dont le champ 'circuit' permet d'identifier si le vol fait partie d'un circuit et en indique le rang. Par exemple le Vol 002 peut recevoir dans son champ 'circuit' les valeurs 'CRCN01' et 'CRSL03' s'il fait partie des circuits CRCN et CRSL. Je désire faire une requête qui va extraire et trier les vols propres à un circuit donné.
L'extraction des vols du circuit CRSL est assez aisée :
SELECT * FROM vols WHERE circuit LIKE '%CRSL%'
Un tableau se construit et reçoit les enregistrements extraits. Je veux cependant que le circuit soit affiché selon la chronologie des vols, soit CRSL01, CRSL02, CRSL03 etc. Le classement doit donc se faire sur les valeurs CRSL contenues dans le champ 'circuit'. Dans mon exemple, le Vol 002 devrait donc occuper la troisième ligne du tableau du circuit CRSL.
On ne peut faire le tri sur le numéro de vol car ces numéros sont créés en fonction d'autres critères. Un circuit comprend donc des vols aux numéros disparates. On ne peut également pas faire le tri sur le champ 'circuit' car, dans notre exemple, le Vol 002 faisant également partie du circuit 'CRCN', un tri sur ce champ serait faussé parce qu'il porterait sur la valeur CRCN et non sur CRSL, plus loin dans la chaîne.
Comment peut-on donc faire le classement sur une valeur contenue dans un champ ? Ici je veux évidemment que le classement se fasse selon les différentes valeurs CRSLxx, soit CRSL01, CRSL02, CRSL03, CRSL04 etc..
Merci.