Feature nicht implementiert: WINDOW / ORDER BY

Ich verwende eine eingebettete Apache Derby-database und führe die folgende Abfrage aus:

SELECT someUniqueValue, row_number() over(ORDER BY someUniqueValue) as ROWID FROM myTable; 

someUniqueValue ist ein Varchar.

Ich bekomme die exception:

java.sql.SQLFeatureNotSupportedException: Feature nicht implementiert: WINDOW / ORDER BY

Wenn ich die row_number() in meiner Abfrage zu:

 row_number() over() as ROWID 

Die Abfrage läuft gut (obwohl das Ergebnis für mich nutzlos ist).

Die Derby-Dokumentation besagt, dass dies unterstützt wird. Was mache ich falsch?

Solutions Collecting From Web of "Feature nicht implementiert: WINDOW / ORDER BY"

Der von Ihnen gepostete Link ist nur ein Entwurf, um anzugeben, wie das Feature implementiert werden soll.

Wenn Sie ein wenig nach unten scrollen, finden Sie:

Eine Implementierung der ROW_NUMBER () -windowsfunktion ist in Derby enthalten, beginnend mit der Version 10.4.1.3. Einschränkungen und Verwendungsbeschreibung finden Sie im Derby Reference Manual

Wenn Sie sich dann das Derby-Handbuch ansehen (Ihr Link ist nicht das Handbuch) http://db.apache.org/derby/docs/10.10/ref/rrefuncrownumber.html finden Sie eine list von Einschränkungen:

  • Derby lässt derzeit nicht zu, dass die benannte oder unbenannte windowsspezifikation in der OVER () – Klausel angegeben wird, sondern erfordert eine leere Klammer. Dies bedeutet, dass die function über die gesamte Ergebnismenge ausgewertet wird.
  • Die ROW_NUMBER-function kann derzeit nicht in einer WHERE-Klausel verwendet werden.
  • Derby unterstützt derzeit ORDER BY in Unterabfragen nicht, so dass es derzeit keine Möglichkeit gibt, die Reihenfolge der Zeilen in der SELECT-Unterabfrage zu garantieren. Eine Optimizer-Überschreibung kann verwendet werden, um das Optimierungsprogramm zur Verwendung eines Index zu zwingen, der in der / den gewünschten Spalte (n) angeordnet ist, wenn die Bestellung eine feste Anforderung ist.