fra SQL Server-2012, kan du formatere numeriske typer ved hjelp av T-SQL FORMAT()
funksjon. Denne funksjonen aksepterer tre argumenter; antall, formatet, og en valgfri «kultur» – argumentet.
formatet er levert som en formatstrengen. Et format string definerer hvordan produksjonen skal være formatert.
Her er et eksempel:
SELECT FORMAT(1, 'N');
Resultat:
1.00
I dette tilfellet, jeg brukte N
som andre argument., Dette er standard numerisk format specifier for Antall. Denne bestemt format specifier (N
) resultater i produksjonen blir formatert med integrert og desimaler, gruppe-separatorer, og et desimalskilletegn med ekstra negativt fortegn. Dette argumentet er store eller små bokstaver, så enten N
eller n
er fint.,
Desimaler
Her er et annet eksempel, denne gang ved hjelp av N1
for å angi at vi bare vil ha én desimal:
SELECT FORMAT(1, 'N1');
Resultat:
1.0
Men du kan også øke antall desimaler for:
SELECT FORMAT(1, 'N7');
Resultat:
1.0000000
I disse eksemplene, 1
og 7
er kjent som presisjon specifiers.
Presisjon specifiers er valgfritt., De kan være en verdi mellom 0 og 99, som angir presisjonen på resultatet. Hvordan det fungerer, avhenger av formatet specifier blir brukt. For noen format specifiers, det vil angi det totale antall sifre i resultatet, for andre vil det angi antall desimaler. I andre tilfeller vil det være helt ignorert. Se hele listen over Standard Numerisk Format specifiers å se hvordan presisjon specifiers påvirke resultatet fra hvert format specifier.
Prosent
følgende eksempler bruker P
argument, hvilke formater nummeret som en prosentvis verdi., Den multipliserer antall med 100, og deretter legger til en lokalisert prosenttegn.
SELECT FORMAT(1, 'P') AS 'Example 1', FORMAT(.375, 'P') AS 'Example 2', FORMAT(.0375, 'P', 'tr-tr') AS 'Example 3';
Resultat:
Example 1 Example 2 Example 3--------- --------- ---------100.00 % 37.50 % %3,75
Merk som «Eksempel 3» inneholder et tredje argument, som angir kultur skal brukes i utskriften. I dette tilfellet, jeg bruker tr-tr
for tyrkisk. Dette resulterer i prosent tegn blir prepended antall (i stedet for tilføyes, som de andre). Det er også resulterer i et komma brukes som desimaltegn.
Hvis du ikke gir den «kultur» som et argument, språket for den gjeldende økten er brukt.,
Som du kan forestille deg, kan du få ganske forskjellige resultater avhengig av din nåværende språk eller verdien av alle «kultur» – argumentet. Se Hvordan Språk kan Påvirke din FORMAT() Resultater for flere eksempler.
Valuta
Du kan bruke C
for å returnere en valuta verdi.
SELECT FORMAT(1, 'C');
Resultat:
$1.00
Du kan også legge til i den nasjonale innstillingen som en tredje parameter.,
Here are some examples:
SELECT FORMAT(1, 'C', 'fr-FR') AS France, FORMAT(1, 'C', 'th-TH') AS Thailand, FORMAT(1, 'C', 'ja-JP') AS Japan;
Result:
France Thailand Japan------ -------- -----1,00 € ฿1.00 ¥1
Exponential (Scientific)
You can use E
to specify exponential notation.
SELECT FORMAT(1234.56789, 'E');
Result:
1.234568E+003
Hexadecimal
You can even format a number as hexadecimal., For å gjøre dette, bruk X
argument:
SELECT FORMAT(10, 'X');
Resultat:
A
Her er et annet eksempel, denne gang med et større antall:
SELECT FORMAT(7145, 'X');
Resultat:
1BE9
Egendefinert Format
Du kan også lage dine egne formater ved hjelp av en egendefinert numerisk format string. Dette består av en serie av tilpasset numerisk format specifiers som gir et mønster for ditt nummer.,
Dette er lettere forklares med et eksempel:
SELECT FORMAT(123456789, '##-###-####');
Resultat:
12-345-6789
I dette tilfellet, jeg bruker sifret plassholder (#
). Sifferet plassholder gir meg muligheten til å angi et format for antall, bruk av #
symbol som en plassholder for hvert nummer.
Komma
et Annet eksempel:
SELECT FORMAT(123456789, '#,#');
Resultat:
123,456,789
Ledende Nuller
en Annen tilpasset numerisk format specifier er null (0
)., Du kan bruke dette til å pad et tall med ledende nuller:
SELECT FORMAT(7, '000') AS 'Example 1', FORMAT(123, '0000') AS 'Example 2', FORMAT(123, '00000') AS 'Example 3';
Resultat:
Example 1 Example 2 Example 3--------- --------- ---------007 0123 00123
Du kan også bruke den til å fjerne nuller:
SELECT FORMAT(0123, '000') AS 'Example 1', FORMAT(0123, '0000') AS 'Example 2', FORMAT(000123, '00000') AS 'Example 3';
Resultat:
Example 1 Example 2 Example 3--------- --------- ---------123 0123 00123
Numerisk Format Specifiers Referanse
følgende artikler inneholder alle numerisk format specifiers du kan bruke med FORMAT()
funksjon, sammen med T-SQL eksempler.,
- Standard Numerisk Format Strenger
- Custom Numerisk Format Strenger
Dette er de samme format specifiers som støttes av den .NET Framework (FORMAT()
funksjon er avhengig av .NET Framework).
Dato og Tid
FORMAT()
funksjonen lar deg også formatet for dato og klokkeslett.
Dato og tid har et eget sett av format specifiers:
- Standard Format for Dato og Klokkeslett Strenger
- Egendefinert Format for Dato og Klokkeslett Strenger