SQL Server Format () - Funktion
Habe ich eine aktuelle Abfrage in einer MS Access-Datenbank, die verwendet die Format () - Funktion zum konvertieren einer Zahl (long integer) in einen string.
Die Tabelle wurde überarbeitet und verschoben, um SQL server. Das Feld, das ich brauchen, um zu konvertieren ist kein Geld, das Feld, das ich brauche, um alles zu löschen nach der Zeit und wandelt es in eine Zeichenfolge mit einer bestimmten Anzahl von Zeichen.
Beispieldaten:
Amount
228.00000
1896.00000
6411.00000
317.00000
4830.00000
898.00000
1778.00000
1308.00000
45139.00000
424.00000
Aktuellen MS Access-Abfrage:
SELECT Format(CallAmt],"000000000000000") AS Amount
FROM Fed
Neue Abfrage:
SELECT Convert(varchar(15), FedAmount)
FROM Fed.SM_T_Call
Ich würde, wie mein Endprodukt Aussehen:
Amount
000000000000228
000000000001896
000000000006411
000000000000317
000000000004830
000000000000898
000000000001778
000000000001308
000000000045139
000000000000424
Ich weiß nicht, wie man alles nach der Zeit und fügen Sie die zusätzlichen Nullen auf mein Ergebnis. Kann jemand Hilfe anbieten?
Was datatype FedAmount in SQL Server? Sie sagten, es ist nicht eine Geld-Feld, was es in SQL Server, nachdem es bewegt wurde
Würde es helfen, wenn Sie Sie Bearbeiten Ihre Frage und zeigen, wie die endgültige Ausgabe Aussehen.
yep, muss die endgültige Ausgabe. Nicht alle von uns mit Mühe/mithilfe von VBA.
meine schlecht, ich bearbeitet habe, auf mein Endprodukt. sorry.
Nutzen Sie meine RICHTIGE Lösung, dann haben führende Leerzeichen mit einem CAST auf int
Würde es helfen, wenn Sie Sie Bearbeiten Ihre Frage und zeigen, wie die endgültige Ausgabe Aussehen.
yep, muss die endgültige Ausgabe. Nicht alle von uns mit Mühe/mithilfe von VBA.
meine schlecht, ich bearbeitet habe, auf mein Endprodukt. sorry.
Nutzen Sie meine RICHTIGE Lösung, dann haben führende Leerzeichen mit einem CAST auf int
InformationsquelleAutor Taryn | 2011-08-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie verwenden:
RIGHT('000000000000000' + CAST(MyNumber AS varchar(15)), 15)
mit führenden Nullen zu habenOder alle der oben genannten: aber wir wissen nicht, welchen Ausgang Sie sich wünschen...
Bearbeiten, nach update
Bearbeiten, Oktober 2011
SQL Server 2012 (Denali), muss die Format-Funktion.
Edit nach Kommentar von onedaywhen
Mit
REPLICATE('0', 15)
würde Ihr code leichter zu Lesen.Wahr. Im realen Leben würde ich wahrscheinlich wickeln Sie es in ein UDF und haben die Länge als parameter...
InformationsquelleAutor gbn
InformationsquelleAutor David
Können Sie verwenden Sie den decimal-Datentyp:
Und dann, wenn Sie es wollen, eine varchar-danach:
Oder in einer select -, könnte es so Aussehen:
InformationsquelleAutor Chains
Funktionieren könnte?
InformationsquelleAutor John Sobolewski
@gbn würde die Antwort ist gut für SQL-Server und verwendet proprietäre Funktionen
RIGHT()
undREPLICATE()
.Darauf hingewiesen, dass Sie bereits auf port dieses eine mal, das folgende könnte eine portable-version, weil es verwendet Standard-SQL-Funktionen. Hinweis: die string-concatenation-operator in Standard-SQL ist
||
, während SQL Server verwendet+
für die gleiche (und MS immer noch behauptet, dass es kompatibel ist, gehen Sie Abbildung). Aber der vorgeschlagene code noch punktet auf Portabilität Maßstab, weil die Umwandlung`||
zu+
ist trivial:InformationsquelleAutor onedaywhen