![]() |
Datenbank: MsAccess • Version: 2000 • Zugriff über: ADO
Leftpad (auffüllen mit 0) in SQL-Abfrage
Ich habe eine Tabelle die z.B. folgende Datensätze enthält:
Code:
Wenn ich eine SQL Abfrage sortiert mache erhalte ich:
1
5 4 53 22 A C
Code:
Es wird halt nicht numerisch sondern Alphanumerisch sortiert. Gibt es eine Möglichkeit in SQL (für ADO Zugriff auf eine Access-DB), etwas ähnliches wie PADLEFT zu machen, z.B. SORT BY PADLEFT("0",5, [Feldname])? Dadürch würden alle Werte vorher auf 5 Stellen mit Nullen aufgefüllt und die sortierung würde funktionieren.
1
22 4 5 53 A C Gruß Alfonso |
Re: Leftpad (auffüllen mit 0) in SQL-Abfrage
Hallo Alfonso,
du wirst wissen, wie du mit den alphanumerischen Werte in deinem Beispiel umgehen möchtest. Führende Nullen werden in T-SQL mit REPLICATE und DATALENGTH produziert:
SQL-Code:
In Access dürften String() und Len() die äquivalenten Funktionen sein, falls dort Replicate() und DataLength() nicht bekannt sind. Ich habe leider kein Access zum Testen zur Verfügung.
SELECT REPLICATE('0', 5 - DATALENGTH(fieldname)) + fieldname AS demo ...
Freundliche Grüße |
Re: Leftpad (auffüllen mit 0) in SQL-Abfrage
Vielleicht so...
SQL-Code:
Gruss
SELECT *
FROM tabelle ORDER BY Mid("00000", 1, 5 - LEN(feld)) + feld Thorsten |
Re: Leftpad (auffüllen mit 0) in SQL-Abfrage
Vielen Dank euch beiden.
Die erste Lösung klappt hervorragend. In Access-SQL heißt es dann so:
SQL-Code:
bye
ORDER BY String((5-Len([Ziffer])),"0")+[Ziffer];
Alfonso |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz