Seite 1 von 1

[gelöst] SQL: ORDER BY sortiert eigentümlich

Verfasst: Do 27. Apr 2023, 11:20
von Pit Zyclade
Hallo Experten !
Mein Ziel ist ein schneller Abgleich zwischen eine Liste von Verzeichnissen (mit Musiktiteln) unter win11 und dieser Liste in einer base-Abfrage.

Ich habe schon gedacht, ich könnte mittels LOWER oder UPPER die Unterschiede umgehen, aber das erbrachte keine Lösung.

SELECT "ID" AS "ID", "Ordner" AS "Ordner", ... , UPPER ( "Ordner" ) AS "Sortiert" FROM "Musik - mp3 flac wma" ORDER BY "Sortiert" ASC

Aus der Base-Abfrage kommt folgende Sortierung heraus :
...
All meine Gedanken die ich hab
A mesterprimás Lakatos Sándor
A mi Utcánk
Andrés Segovia CD 1
...

Aus dem win11-Ordner wird aufsteigend sortiert:
...
A mesterprimás Lakatos Sándor
A mi Utcánk
ABBA - The Definitive Collection CD 1 - 129 - wma
...

Die Sortierung A Leerstelle m wird in Base als "Am" gewertet, also nach "All" und vor "And"
im Win-System hingegen als "A " und kommt folglich vor "AB" vor.
Also Leerstellen werden bei ORDER BY nicht gewertet. Das führt zu einer falsche empfundenen Sortierung.

Wie kann ich mittels SQL eine gleichartige Sortierung erreichen, damit mir ein optischer Vergleich schneller gelingt?

Re: SQL: ORDER BY sortiert eigentümlich

Verfasst: Do 27. Apr 2023, 15:29
von RobertG
Welche Datenbank liegt denn darunter?

Wenn ich das recht in Erinnerung habe, dann ignoriert die alte HSQLDB die Leerstellen und zieht den Text entsprechend zusammen.

Gruß

Robert

Re: SQL: ORDER BY sortiert eigentümlich

Verfasst: Fr 28. Apr 2023, 17:06
von Pit Zyclade
Ja, es ist eine eingebaute HSQLDB. Aber für die paar kleinen privaten Sachen wollte ich mich nicht noch auf fremdes Eis begeben.
Momentan habe ich auch noch zwei Baustellen:
1. Ein neues Navi, weil mein altes zwar noch funktioniert, jedoch keine neuen Karten(updates) mehr erhältlich sind.
2. Stichwortverzeichnisse auf Basis Konkordanzdatei zicken neuerdings. Und da hatte ich mich mal eingebracht, muss also Lösungen finden.

Alles schwierig...

Danke für deinen Hinweis!

Re: SQL: ORDER BY sortiert eigentümlich

Verfasst: Sa 29. Apr 2023, 09:07
von Wanderer
Du könntest erst alle Leerzeichen durch z.B. Unterstriche ersetzen also so etwas wie

Code: Alles auswählen

ORDER BY UPPER(REPLACE("Ordner", ' ', '_'))
Ich habe nicht nachgesehen, welche String-Funktionen bei HSQLDB zur Verfügung stehen. REPLACE ist also eventuell falsch.
Update: Hier aber enthalten:
https://hsqldb.org/doc/2.0/guide/builti ... chapt.html

Man kann auch einen Index mit solchen Ausdrücken erzeugen, wenn die Perfomance sonst zu sehr leidet ...

PS: Natürlich musst Du die Windows- Pfade dann auch entsprechend bearbeiten, wenn Du direkt via Base vergleichen willst...

Re: SQL: ORDER BY sortiert eigentümlich

Verfasst: Sa 29. Apr 2023, 13:52
von Pit Zyclade
Hallo @Wanderer

Dein Hinweis war der Beste! Ich habe jetzt erst einmal noch einfacher ohne UPPER gearbeitet
ORDER BY ( REPLACE( "Ordner", ' ', '_' ) ) ASC
funktioniert bei mir.

Wobei ich micht frage, warum dass nicht bereits im Programm/in der Software/in der Version berücksichtigt wurde.