[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.868
    Das ergibt sich doch im Ausdruck, da du doch keine neue Sortierung vorgibst als die Kunden-Nr.!
    Die Reihenfolge im In-Ausdruck spielt überhaupt keine Rolle. Hier wird eine sequentielle Prüfung der Werte vorgenommen.

    Was diesen Ausdruck angeht:
    order by Case When Kdnr = 50 Then KdNr End,
    Case When KdNr = 1 Then KdNr End, ...
    So ist er im Moment wohl noch richtig, da der Default beim "Order By" "NULLS LAST" ist und dieses Verhalten nicht beeinflusst werden kann. Dies könnte mit dem nächsten Release geändert werden, dann stimmt der Sort nicht mehr. Bei OLAP-Funktionen ist die Angabe schon möglich.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.961
    So ist er im Moment wohl noch richtig, da der Default beim "Order By" "NULLS LAST" ist und dieses Verhalten nicht beeinflusst werden kann. Dies könnte mit dem nächsten Release geändert werden, dann stimmt der Sort nicht mehr. Bei OLAP-Funktionen ist die Angabe schon möglich.
    Das glaube ich kaum, da sonst u.a. die Sortierung beim Multi-dimensionalen Grouping nicht mehr funktionieren würde. Da wird davon ausgegangen, dass in der "Gruppen-Wechsel Spalte" für die Summen-Zeile NULL steht, wodurch die Summe ans Ende sortiert wird.

    Die Aggregat-Funktion GROUPING würde ebenfalls nicht funktionieren.

    Ähnliche Probleme würden bei den Rekursiven Abfragen und hierarchischen Query-Anweisungen auftreten.

    OLAP-Funktionen haben einen individuellen Order By.

    Auf alle Fälle gehe ich nicht davon aus, dass der DEFAULT geändert wird. ggf. kann durch eine entsprechende Sortierreihenfolge das Verhalten beeinflusst werden.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 6. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.399
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Das ergibt sich doch im Ausdruck, da du doch keine neue Sortierung vorgibst als die Kunden-Nr.!
    Die Reihenfolge im In-Ausdruck spielt überhaupt keine Rolle. Hier wird eine sequentielle Prüfung der Werte vorgenommen.

    Was diesen Ausdruck angeht:
    order by Case When Kdnr = 50 Then KdNr End,
    Case When KdNr = 1 Then KdNr End, ...
    So ist er im Moment wohl noch richtig, da der Default beim "Order By" "NULLS LAST" ist und dieses Verhalten nicht beeinflusst werden kann. Dies könnte mit dem nächsten Release geändert werden, dann stimmt der Sort nicht mehr. Bei OLAP-Funktionen ist die Angabe schon möglich.
    ... derANSI Standard erlaubt durchaus Sortierungen nach abgeleiteten Feldern (Ausdrücken) und (idiotischerweise) nach Feldern, die nicht im Resultset enthalten sind. Die Behandlung der Nullvalues ist nur geregelt, wenn die entsprechende Clause (Null first oder Null last) das regelt, ansonsten ist das Implementierungs spezifisch und sollte vermieden werden.
    Dass diese Sortierung nach einem Case Ausdruck Käse ist, erkennt man daran, dass bei neu dazu kommenden Artrikeln SQL Statements angepasst werden müssen (order by in Views ist nicht ANSI konform und kann sich mithin künftig ändern). Ich bezweifle auch stark, dass ein Order by nach einem Case Konstrukt im richtigen Leben für entsprechende Datenmengen vernünftig skaliert und mit einem Index ausreichend gestützt werden kann.
    Summa Summarum rate ich von diesem Ansatz ernstlich ab!!!

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Performance Werte V5R4
    By KingofKning in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 07-07-14, 14:15
  2. UPDDTA und Null-Werte
    By alexk2013 in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 14-05-14, 12:33
  3. Tabelle aus QSYS.LIB nach QDLS kopieren
    By TARASIK in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 26-03-03, 10:03
  4. Berechtigung zum Updaten einer Tabelle
    By Sascha Storzum in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 22-08-02, 07:37
  5. Query 0-Werte Ausgeben???
    By qiwi2000 in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 26-04-02, 07:51

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •