SQLite: RPAD und LPAD in SQLite - Zeichen rechts und links auffüllen
Info von Stefan Trost | Letztes Update am 30.12.2022 | Erstellt am 13.05.2013
Problem: Um das Ergebnis aus einer Abfrage in MySQL links oder rechts mit einem beliebigen Zeichen aufzufüllen, stellt uns MySQL die Befehle RPAD und LPAD (Right Padding und Left Padding) zur Verfügung.
Ein Beispiel dafür sieht zum Beispiel so aus:
SELECT col; SELECT LPAD(col, 3, '-'); SELECT RPAD(col, 3, '-'); 1 --1 1-- 22 -22 22- 333 333 333
Je nachdem, wie lang der Inhalt von "col" ist, wird das Ergebnis bei LPAD auf der linken Seite mit dem angegeben Zeichen und der angegebenen Länge aufgefüllt oder entsprechend auf der rechten Seite mit RPAD. In unserem Beispiel demonstrieren wir das mit einem Bindestrich als Auffüllungszeichen und einer Auffüllungslänge von 3 Zeichen.
Leider stellt uns SQLite keine derartige Funktion zur Verfügung, so dass wir uns eines Tricks bedienen müssen.
So geht es mit SQLite
Um dasselbe Ergebnis wie in MySQL auch in SQLite zu bekommen, benutzen wir eine Mischung aus einer String-Verknüpfung (das ist der || Operator) und der Funktion SUBSTR.
Zunächst die Entsprechung für LPAD:
LPAD(col, 3, '-') FROM ... SUBSTR('---' || col, -3, 3) FROM ...
Und hier die Entsprechung für RPAD:
RPAD(col, 3, '-') FROM ... SUBSTR(col || '---', 1, 3) FROM ...
Zur Erklärung: Der Trick funktioniert folgendermaßen: Wir lesen den Inhalt von "col" aus und verknüpfen diesen mit dem String "---". Dieser String ist so lang, wie die maximale Länge an Zeichen, die aufgefüllt werden könnten. Das Ergebnis dieser Abfrage alleine wäre demnach zum Beispiel "---1" oder "---22".
Anschließend benutzen wir SUBSTR um den entstandenen String entsprechend unserer gewünschten Länge zu kürzen. Damit wird zum Beispiel aus "---1" der String "--1" oder aus "---22" der String "-22". Und schon haben wir unser Ergebnis.
Diese Prozedur machen wir entweder vorne oder hinten, je nachdem ob wir LPAD oder RPAD nachbauen möchten. Um das Beispiel an eigene Bedürfnisse anzupassen, muss man den String "---" durch seine aufzufüllenden Zeichen ersetzen und dessen Länge als auch "-3" und "3" durch die gewünschte Padding-Länge ersetzen.
Über den Autor
Software von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen
Ähnliche Themen
PHP: String vorne oder hinten mit beliebigen Zeichen auf bestimmte Länge auffüllen
Tipp | 3 Kommentare
PHP: Nur bestimmte Buchstaben, Zahlen und Zeichen in einem String zulassen
Tipp | 10 Kommentare
jQuery: CSS Stylesheet Switcher
Tutorial | 1 Kommentar
PHP: Beliebige Zeichen am Anfang und Ende eines Strings entfernen
Tutorial | 0 Kommentare
JavaScript: Letztes Zeichen aus String entfernen
Tipp | 0 Kommentare
MySQL: Timestamp Spalte nach Monat und Jahr gruppieren
Tipp | 0 Kommentare
PHP: target="_blank" zu (ausgehenden) HTML Links hinzufügen
Tipp | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Danke, hat super funktioniert!
Werde in Zukunft öfter vorbeischaun!
20.10.2020 um 12:54