2017-10-12 2 views
0

Ich habe Probleme mit einigen dieser Konvertierungen, also entschuldige ich mich, ich habe in der Vergangenheit eine ähnliche Frage gestellt, aber ich kann einfach nicht verstehen, wie ich das erreichen kann. Dies ist ein 18 Zeichenfeld aussiehtSQL CONVERT STRING

000000000000025990 

würde

000000000000050000 

Ein Wert von 25,99, wo alle führenden Zeichen sind -

So ein Wert von 50,00 ist derzeit in folgendem Format exportiert mit einer Null aufgefüllt.

Was ich versuche zu tun, dass String in einem 19 Zeichen umwandeln - immer noch mit führenden Nullen - aber der Wert von 50 oder 25.99 ist etwas anders -

000000000000050000 wird 0000000000000005000

000000000000025990 wird 0000000000000002599

Jede Hilfe würde sehr geschätzt werden.

+0

Suche nach T-SQL 'SUBSTRING' Funktion – saidfagan

+0

Wie erfolgt die 18-stellige Konvertierung? – gbn

+0

Die unten angegebenen Antworten übersetzen die Zeichenfolge perfekt in das, was Sie möchten. Denken Sie daran, das Feld, das die neuen Zahlen enthalten soll, in nvarchar (19) zu ändern ALTER TABLE Tabellenname ALTER COLUMN Somecolumn nvarchar (19) – russ

Antwort

1

Sie scheinen zu wollen:

select '00' + left(str, 17) 

Dies ist ein sehr seltsames Format. Vielleicht sollten Sie in Betracht ziehen, numeric/decimal zu verwenden, die die Zahl genau darstellen kann.

0

Viele Annahmen gehen in diese Antwort, aber ...

SELECT '00'+LEFT(OriginalField, 17) 

dass Ihr ursprünglichen 18. Charakter gestutzt würde und einfach gesagt zwei Nullen auf der Vorderseite.

Die Lösung ist nicht so einfach, wenn Sie das 17. Zeichen möglicherweise runden müssen.