J'utilise ADS v10 beta. J'essaie de numérer des résultats ordonnés.Advantage Database Server ORDER BY comportement
1) ORDER BY dans les requêtes imbriquées. Je dois utiliser imbriquée SELECT pour certains calculs:
SELECT Name, Value, ROWNUM() FROM (SELECT * FROM MainTable WHERE Value > 0 ORDER BY Value) a
Et je reçois
Expected lexical element not found:) There was a problem parsing the table names after the FROM keyword in your SELECT statement.
Tout fonctionne bien quand ORDER BY est supprimée. Bien que, j'ai trouvé l'échantillon dans l'aide, il ressemble à ma requête (plus complexe, en effet):
SELECT * FROM (SELECT TOP 10 empid, fullname FROM branch1 ORDER BY empid) a UNION SELECT empid, fullname FROM branch2 ORDER BY empid
2) ORDER BY
+ ROWNUM()
. J'ai utilisé la requête imbriquée dans l'exemple ci-dessus pour calculer les rangées ordonnées. Est-il possible d'éviter les requêtes imbriquées? Dans le serveur SQL que je peux faire quelque chose comme ceci:
SELECT Name, Value, ROW_NUMBER() OVER(ORDER BY Value) FROM MainTable WHERE Value > 1 ORDER BY Value
conseils S'il vous plaît. Merci.
Votre suggestion pourrait être simplifiée à "SELECT Nom, Valeur, ROWNUM() FROM MainTable WHERE Valeur> 0 ORDER BY Valeur" N'est-ce pas? Dans la deuxième partie "2)" de ma question, j'ai écrit pourquoi cela ne fonctionne pas. –
@ie: Oui, il est équivalent à cette requête. Cependant, je ne crois pas que la clause OVER soit prise en charge (dans la deuxième requête). –
@ Mark Wilkins: oui, semble tellement ... merci. –