2 Stimmen

String-Formatierung in T-SQL

Ich habe einer Tabelle eine Spalte hinzugefügt, in der eine formatierte Zeichenkette gespeichert wird, die auf der Verkettung einer Reihe anderer Spalten basiert, damit ich sie leichter durchsuchen kann. Um das Laden der gesamten Tabelle in eine andere Anwendung und das Aktualisieren der neuen Spalte zu vermeiden, möchte ich eine UPDATE-SQL-Abfrage schreiben. Aber ich weiß nicht, wie ich eine Integer-Spalte nehmen und sie wie in diesem Beispiel formatieren kann

Quellspaltenwert = 1 Wert der Zielspalte = 0001

Ich möchte, dass die 3 führenden Nullen in SQL hinzugefügt werden.

Irgendwelche Ideen?

5voto

Anton Gogolev Punkte 109749

Hier erfahren Sie, wie Sie Seros vorangestellt werden:

right('0000' + cast(MyColumn, nvarchar(4), 4)

Dadurch wird die Verkettung 0000 mit dem Wert, den es in MyColumn und geben die vier Zeichen ganz rechts zurück.

3voto

Nick Craver Punkte 609016

Versuchen Sie dies:

SELECT RIGHT('000'+ CONVERT(VARCHAR,Source),4) AS ColWithZeros
FROM Table

2voto

Klaus Byskov Pedersen Punkte 111081
select Right( '0000' + cast( 1 as varchar),4)

0voto

NimChimpsky Punkte 44848

Wenn es von einer Integer-Spalte kommt, würde ich die Abhängigkeit von der Zeichenfolge "0001" aufheben.

Außerdem gehen die meisten anderen Antworten davon aus, dass 1 die einzige Angabe ist. Ich würde vorschlagen, dass Sie die Anzahl der Ziffern ermitteln und dann die entsprechende Anzahl von Nullen hinzufügen müssen. Bei allen anderen Daten (10, 20, 100 usw.) wird es nicht funktionieren.

0 Stimmen

Ich glaube, dass die vorgeschlagenen Lösungen mit jeder Anzahl von Ziffern in der Eingabe zurechtkommen, wenn man die äußersten rechten 4 Zeichen nimmt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X