Dieser Artikel enthält eine Referenz für die benutzerdefinierten numerischen Formatbezeichner, die beim Formatieren von Zahlen mit FORMAT()
verwendet werden können Funktion in SQL Server. Beispiele enthalten.
Zeichenfolge formatieren | Beschreibung/Beispiel |
---|---|
0 | Null-Platzhalter . Ersetzt die Null durch die entsprechende Ziffer, falls vorhanden; andernfalls erscheint Null in der Ergebniszeichenfolge. Beispiele : SELECT FORMAT(12.34, '0') R1, FORMAT(012.34, '00') R2, FORMAT(12.34, '000') R3, FORMAT(012.34, '0000') R4, FORMAT(12.54, '00') R5; +------+------+------+------+------+ | R1 | R2 | R3 | R4 | R5 | |------+------+------+------+------| | 12 | 12 | 012 | 0012 | 13 | +------+------+------+------+------+ |
# | Ziffernplatzhalter . Ersetzt das „#“-Symbol durch die entsprechende Ziffer, falls vorhanden; andernfalls erscheint keine Ziffer in der Ergebniszeichenfolge. In der Ergebniszeichenfolge erscheint keine Ziffer, wenn die entsprechende Ziffer in der Eingabezeichenfolge eine nicht signifikante 0 ist. Beispiele : SELECT FORMAT(12.34, '#') R1, FORMAT(012.34, '##') R2, FORMAT(12.34, '###') R3, FORMAT(012.34, '####') R4, FORMAT(12.54, '##') R5; +------+------+------+------+------+ | R1 | R2 | R3 | R4 | R5 | |------+------+------+------+------| | 12 | 12 | 12 | 12 | 13 | +------+------+------+------+------+ |
. | Dezimalpunkt . Bestimmt die Position des Dezimaltrennzeichens in der Ergebniszeichenfolge. Beispiele : SELECT FORMAT(12.34, '0.0', 'en-US') R1, FORMAT(12.34, '.00', 'en-US') R2, FORMAT(12.34, '.', 'en-US') R3, FORMAT(12.34, '.00', 'fr-FR') R4; +------+-------+------+-------+ | R1 | R2 | R3 | R4 | |------+-------+------+-------| | 12.3 | 12.34 | 12 | 12,34 | +------+-------+------+-------+ |
, | Gruppentrenner und Zahlenskalierung . Kann sowohl als Gruppentrennzeichen (auch bekannt als Tausendertrennzeichen) als auch als Zahlenskalierungsbezeichner verwendet werden.
Um ein Gruppentrennzeichen anzugeben, setzen Sie ein oder mehrere Kommas zwischen zwei Ziffernplatzhalter (0 oder #), die die ganzzahligen Ziffern einer Zahl formatieren. Dadurch wird im ganzzahligen Teil der Ausgabe zwischen jeder Zahlengruppe ein Gruppentrennzeichen eingefügt. Um einen Zahlenskalierungsbezeichner anzugeben, platzieren Sie ein oder mehrere Kommas unmittelbar links vom expliziten oder impliziten Dezimalpunkt. Beispiele – Als Gruppentrenner : SELECT FORMAT(12345678, '#,#', 'en-US') 'US English', FORMAT(12345678, '#,#', 'fr-FR') 'French', FORMAT(12345678, '#,#', 'es-ES') 'Spanish'; +--------------+------------+------------+ | US English | French | Spanish | |--------------+------------+------------| | 12,345,678 | 12 345 678 | 12.345.678 | +--------------+------------+------------+ Beispiele – Als Spezifizierer für die Zahlenskalierung : SELECT FORMAT(12000, '#,', 'en-US') 'R1', FORMAT(1234567890, '#,', 'en-US') R2, FORMAT(1234567890, '#,,', 'en-US') R3; +------+---------+------+ | R1 | R2 | R3 | |------+---------+------| | 12 | 1234568 | 1235 | +------+---------+------+ Beispiele – Als beide : SELECT FORMAT(1234567890, '#,#,', 'en-US') R1, FORMAT(1234567890, '#,#,,', 'en-US') R2; +-----------+-------+ | R1 | R2 | |-----------+-------| | 1,234,568 | 1,235 | +-----------+-------+ |
% | Prozentplatzhalter . Multipliziert eine Zahl mit 100 und fügt ein lokalisiertes Prozentzeichen in die Ergebniszeichenfolge ein. Beispiele : SELECT FORMAT(0.1234, '#.# %', 'en-US') R1, FORMAT(0.1235, '#.#%', 'zh-cn') R2, FORMAT(0.125, '#. %', 'en-US') R3, FORMAT(0.1234, '%#.00,', 'tr') R4, FORMAT(0.1234, '#.#%', 'it') R5; +--------+-------+------+--------+-------+ | R1 | R2 | R3 | R4 | R5 | |--------+-------+------+--------+-------| | 12.3 % | 12.4% | 13 % | %12,34 | 12,3% | +--------+-------+------+--------+-------+ |
‰ | Promille-Platzhalter . Multipliziert eine Zahl mit 1000 und fügt ein lokalisiertes Promillezeichen in die Ergebniszeichenfolge ein. Beispiele : SELECT FORMAT(0.01234, '#.# ‰', 'en-US') 'R1', FORMAT(0.01235, '#.# ‰', 'en-US') R2, FORMAT(0.0125, '#. ‰', 'en-US') R3, FORMAT(0.01234, '#.# ‰', 'fr-FR') R4; +--------+--------+------+--------+ | R1 | R2 | R3 | R4 | |--------+--------+------+--------| | 12.3 ‰ | 12.4 ‰ | 13 ‰ | 12,3 ‰ | +--------+--------+------+--------+ |
|
Exponentialschreibweise . Wenn mindestens eine Null folgt ( Beispiele : SELECT FORMAT(123456789, '0e0') R1, FORMAT(123456789, '0e+0') R2, FORMAT(123456789, '0E+00') R3, FORMAT(1234.56789, '0.0##e+00') R4, FORMAT(12.3456789-12, '0e-0') R5; +------+------+-------+-----------+------+ | R1 | R2 | R3 | R4 | R5 | |------+------+-------+-----------+------| | 1e8 | 1e+8 | 1E+08 | 1.235e+03 | 3e-1 | +------+------+-------+-----------+------+ |
| Escape-Zeichen . Bewirkt, dass das nächste Zeichen als Literal und nicht als benutzerdefinierter Formatbezeichner interpretiert wird. Beispiel : SELECT FORMAT(123, '\#0000') Result; +----------+ | Result | |----------| | #0123 | +----------+ |
| Literal-String-Trennzeichen . Gibt an, dass die eingeschlossenen Zeichen unverändert in die Ergebniszeichenfolge kopiert werden sollen. Beispiel : SELECT FORMAT(23, '## Degrees') Result; +------------+ | Result | |------------| | 23 Degrees | +------------+ |
| Abschnittstrenner . Dies ist ein bedingter Formatbezeichner, der Abschnitte mit separaten Formatzeichenfolgen für positive, negative und Nullzahlen definiert. Auf diese Weise können Sie eine Zahl unterschiedlich formatieren, je nachdem, ob ihr Wert positiv, negativ oder null ist. Eine benutzerdefinierte Formatzeichenfolge kann bis zu drei durch Semikolons getrennte Abschnitte enthalten.
Beachten Sie, dass negative Werte immer ohne Minuszeichen angezeigt werden, wenn Abschnittstrennzeichen verwendet werden. Wenn Sie möchten, dass der formatierte Endwert ein Minuszeichen hat, müssen Sie das Minuszeichen ausdrücklich als Teil der benutzerdefinierten Formatzeichenfolge einschließen. Dies gilt auch für alle anderen bereits vorhandenen Formatierungen, die einer Nummer zugeordnet sind.
Beispiel – Ein Abschnitt (keine Abschnittstrennzeichen) SELECT FORMAT(123, '0 (Number)') Positive, FORMAT(-123, '0 (Number)') Negative, FORMAT(0, '0 (Number)') Zero; +--------------+---------------+------------+ | Positive | Negative | Zero | |--------------+---------------+------------| | 123 (Number) | -123 (Number) | 0 (Number) | +--------------+---------------+------------+ Beachten Sie, dass das Minuszeichen erhalten bleibt, da ich keine Abschnittstrennzeichen verwendet habe. Beispiele – Zwei Abschnitte : /* EXAMPLE 1 - Same format string, different values */ SELECT FORMAT(123, '0 (Positive or Zero); 0 (Negative)') Positive, FORMAT(-123, '0 (Positive or Zero); 0 (Negative)') Negative, FORMAT(0, '0 (Positive or Zero); 0 (Negative)') Zero; +------------------------+-----------------+----------------------+ | Positive | Negative | Zero | |------------------------+-----------------+----------------------| | 123 (Positive or Zero) | 123 (Negative) | 0 (Positive or Zero) | +------------------------+-----------------+----------------------+ /* EXAMPLE 2 - Rounding. Negative values rounded to zero get formatted under the first format string. */ SELECT FORMAT(0.1, '0 (Positive or Zero); 0 (Negative)') Positive, FORMAT(-0.1, '0 (Positive or Zero); 0 (Negative)') Negative; +----------------------+----------------------+ | Positive | Negative | |----------------------+----------------------| | 0 (Positive or Zero) | 0 (Positive or Zero) | +----------------------+----------------------+ Beispiele – Drei Abschnitte : /* EXAMPLE 1 - Basic Usage */ SELECT FORMAT(123, '0 (Positive); 0 (Negative); 0 (Zero)') Result; +----------------+ | Result | |----------------| | 123 (Positive) | +----------------+ /* EXAMPLE 2 - Same format string, different values */ SELECT FORMAT(123, '0 (Positive); 0 (Negative); 0 (Zero)') 'Positive', FORMAT(-123, '0 (Positive); 0 (Negative); 0 (Zero)') 'Negative', FORMAT(0, '0 (Positive); 0 (Negative); 0 (Zero)') 'Zero', FORMAT(0.123, '0 (Positive); 0 (Negative); 0 (Zero)') 'Rounded to Zero'; +----------------+----------------+-----------+-------------------+ | Positive | Negative | Zero | Rounded to Zero | |----------------+----------------+-----------+-------------------| | 123 (Positive) | 123 (Negative) | 0 (Zero) | 0 (Zero) | +----------------+----------------+-----------+-------------------+ /* EXAMPLE 3 - Second format string is empty */ SELECT FORMAT(123, '0 (Positive);; 0 (Zero)') 'Positive', FORMAT(-123, '0 (Positive);; 0 (Zero)') 'Negative', FORMAT(0, '0 (Positive);; 0 (Zero)') 'Zero', FORMAT(0.123, '0 (Positive);; 0 (Zero)') 'Rounded to Zero'; +----------------+-----------------+-----------+-------------------+ | Positive | Negative | Zero | Rounded to Zero | |----------------+-----------------+-----------+-------------------| | 123 (Positive) | -123 (Positive) | 0 (Zero) | 0 (Zero) | +----------------+-----------------+-----------+-------------------+ |
Andere | Alle anderen Zeichen. Das Zeichen wird unverändert in den Ergebnisstring kopiert. Beispiel : SELECT FORMAT(12, '# °C') Result; +----------+ | Result | |----------| | 12 °C | +----------+ |
Die obige Liste ist eine vollständige Liste gültiger benutzerdefinierter .NET-Formatzeichenfolgen, basierend auf den Informationen aus der offiziellen .NET-Dokumentation für benutzerdefinierte Formatzeichenfolgen auf der Microsoft-Website zum Zeitpunkt des Schreibens.
Der Grund, warum diese für den SQL Server FORMAT()
relevant sind Funktion ist, dass sie nur gültige .NET Framework-Formatzeichenfolgen akzeptiert.
Zusätzlich zu den oben genannten benutzerdefiniert Formatstrings können Sie auch Standard verwenden Zeichenfolgen formatieren. Hier ist eine vollständige Liste der standardmäßigen numerischen Formatzeichenfolgen, die Sie mit SQL Server verwenden können.
Sie können auch Datums- und Uhrzeitwerte formatieren. Sehen Sie sich die Liste der standardmäßigen Formatzeichenfolgen für Datum und Uhrzeit sowie die benutzerdefinierten Formatzeichenfolgen für Datum und Uhrzeit an, die Sie mit FORMAT()
verwenden können Funktion.
Wenn Sie immer noch versuchen zu verstehen, was eine Formatzeichenfolge überhaupt ist, lesen Sie Was ist eine Formatzeichenfolge in SQL Server? für ein grundlegendes Verständnis von Formatstrings und wie sie sich auf FORMAT()
beziehen Funktion.