Je ne penses pas que tu puisses le faire sans passer par une table intermédiaire.
De toute façon, tu te rends compte du coup que ton modèle conceptuel ne tient pas la route à travers ce problème.
Je te conseil donc de créer une nouvelle table. Par exemple :
tLangues(idLangue, libelle, position) avec position étant la valeur d'apparition de la langue dans ton résultat
donc pour toi position aura la valeur 1 pour 'fr', la valeur 2 pour 'en' et la valeur 3 pour 'all'
Et ensuite ta requête ressemblera à quelques choses comme ça :
SELECT taTable.* FROM taTable INNER JOIN taTable.idLangue = tLangues.idLangue WHERE taTable.tonchampdate = '2008-09-01' ORDER BY tLangues.position