[NEWSboard IBMi Forum]

Thema: Sortieren

  1. #1
    Registriert seit
    May 2004
    Beiträge
    4

    Sortieren

    Hallo,
    wie kann man in einer SQL-Abfrage unter AS/400 sortieren, sodass Umlaute berücksichtigt werden. Unter Oracle wird dies so gemacht:
    select kunden_nr, name
    from kunde
    order by nlssort(name, 'NLS_SORT=german');

    Gibt es unter AS/400 etwas ähnliches?

    Vielen herzlichen Dank im voraus!
    Niki

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das ist leider eine Einstellung, die VOR dem Aufruf des SQL's-Programms (oder STRSQL) im Job gemacht werden muss.
    CHGJOB LANGID(DEU) SRTSEQ(*LANGID) oder so ähnlich.

    Zu beachten ist allerdings, dass dies ziemlich lange dauern kann, da solche Zugriffspfade eher selten existieren.
    Besser ist es da eine LF (keine SQL-View) zu erstellen, die das Sortierfeld bereits enthält.

    Ausserdem betrifft diese Einstellung ALLE SQL's mit Sortierung.
    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

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    ergänzend sei noch angemerkt, dass hier auch eine TABLE zur Umsetzung fest am Programm vernagelt werden kann (SET OPTION SRTSEQ ....). Aber auch hier gilt, dass man das innerhalb des Programmes/Jobs nicht umschalten kann.
    Am flexibelsten geht es mit ORDER BY und TRANSLATE, da kann man das Sortierfeld entsprechend manipulieren, wie man es braucht.

    Zu den "Kosten": die dürften eigentlich nicht so hoch sein, wenn ein Index existiert (sortieren eines fast sortierten Baums).

    @Baldur: das mit der LF bringt einen im SQL nicht weiter! Das SELECT from MeinerLF wird auf die PF umgelenkt und ein ORDER BY muss ich trotzdem angeben, wobei der Zugriffspfad dann wieder neu berechnet wird.

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau
    Das ist leider eine Einstellung, die VOR dem Aufruf des SQL's-Programms (oder STRSQL) im Job gemacht werden muss.
    CHGJOB LANGID(DEU) SRTSEQ(*LANGID) oder so ähnlich.

    Zu beachten ist allerdings, dass dies ziemlich lange dauern kann, da solche Zugriffspfade eher selten existieren.
    Besser ist es da eine LF (keine SQL-View) zu erstellen, die das Sortierfeld bereits enthält.

    Ausserdem betrifft diese Einstellung ALLE SQL's mit Sortierung.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das Problem beim NLS-Sort ist die Zeichenwertigkeit. Eine LF, die bereits einen passenden Sort ausweist wird vom Optimizer verwendet (auch bei NLS) und zwar (wie du korrekt sagst) unabhängig ob ich auf die PF oder LF gehe.
    Ich habe nur die LF erwähnt, da ich nicht weiß wie per CREATE INDEX eine Spalte per NLS sortiert wird.
    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

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    für die Sort Sequence bei der Erstellung eines Index gilt dasselbe Regelwerk wie für die Verwendung, es werden die Attribute von SRTSEQ und gegebenenfalls LANGID des Jobs zur Erstellung des Zugriffspfades herangezogen und gegebenen Falls die entsprechende Table am LF vernagelt (Attribut SRTSEQ im DSPFD)

    Dieter Bender

    Zitat Zitat von Fuerchau
    Das Problem beim NLS-Sort ist die Zeichenwertigkeit. Eine LF, die bereits einen passenden Sort ausweist wird vom Optimizer verwendet (auch bei NLS) und zwar (wie du korrekt sagst) unabhängig ob ich auf die PF oder LF gehe.
    Ich habe nur die LF erwähnt, da ich nicht weiß wie per CREATE INDEX eine Spalte per NLS sortiert wird.
    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. Sortieren einer Array
    By steven_r in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 22-09-10, 11:35
  2. Sortieren von Subfiles
    By mahones in forum NEWSboard Server Software
    Antworten: 7
    Letzter Beitrag: 01-03-06, 14:11
  3. Antworten: 16
    Letzter Beitrag: 01-11-04, 08:45
  4. ODBC-Zugriff aus ACCESS -- Spalten sortieren
    By DAN in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 24-10-03, 11:26
  5. Sortieren durch ein Datumsformat
    By Newbie in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 04-07-02, 08:19

Berechtigungen

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