2k Aufrufe
Gefragt in Datenbanken von
Ich habe ein Feld des Datentyps varchar mit einer Länge von 42. Ich möchte nun in einer Sicht eine Abfrage erstellen, welche mir u. a. dieses Feld ausgibt und bei einer Länge kleiner 42 die restlichen Felder bis zu einer Länge von 42 mit Leerzeichen auffüllt.

Ich konnte bereits herausfinden, dass dies mit Rpad möglich ist. Jedoch konnte ich bisher nur den Einsatz in einer Oracle-Datenbank finden. Ist diese Funktion im SQL Server Enterprise Manager überhaupt vorhanden? Ich erhalte nämlich immer die Fehlermeldung, dass 'RPAD' nicht als Funktionsname erkannt wird.

3 Antworten

0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Gerade in dem Funktionsbestand unterscheiden sich die DBMS-Hersteller gravierend. Probier es mit

SELECT REPLICATE(' ', (42- LEN(Spalte)))+ Spalte AS Spaltentitel FROM Tabelle
0 Punkte
Beantwortet von
Die Funktion Replicate ist mir schon auch bekannt. Jedoch wird dadurch das Feld von links mit Leerzeichen aufgefüllt und nicht wie von mir gewünscht nach rechts.
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Das ist dann dein mangelndes Abstraktionsvermögen - kannst das doch einfach umstellen:

SELECT Spalte+ REPLICATE(' ', (42- LEN(Spalte))) AS Spaltentitel FROM Tabelle
...