Du koenntest statt mit
OR mit
CASE arbeiten und eine virtuelle Spalte im Resultat erzeugen, die die Prioritaet der Sprache widerspiegelt. Nach dieser Spalte koenntest Du dann sortieren:
SELECT s1, s2,
CASE lang
WHEN 'es' THEN 0
WHEN 'de' THEN 1
....
ELSE 1000
END AS lang_priority
FROM ...
ORDER BY lang_priority;
Du koenntest auch statt mit
OR mit
UNION arbeiten, um die Ergebnisse der Abfragen fuer verschiedene Sprachen in einer bestimmten Reihenfolge aneinander zu haengen:
SELECT s1, s2 FROM ...
WHERE lang = 'es'
UNION SELECT s1, s2 FROM ...
WHERE lang = 'de'
...
Mir persoenlich wuerde wohl die erste Loesung besser gefallen. Aber es haengt auch etwas davon ab, welche Moeglichkeiten Du hast, das SQL-Statement zusammenzubauen.
When C++ is your hammer, every problem looks like your thumb.