från SQL Server 2012 kan du formatera numeriska typer med funktionen T-SQL FORMAT()
. Denna funktion accepterar tre argument; numret, formatet och ett valfritt ”kultur” – argument.
formatet levereras som en formatsträng. En formatsträng definierar hur utdata ska formateras.
här är ett exempel:
SELECT FORMAT(1, 'N');
resultat:
1.00
i det här fallet använde jag N
som det andra argumentet., Detta är standard numerisk formatspecifikator för nummer. Denna speciella formatspecifikator (N
) resulterar i att utmatningen formateras med integrerade och decimala siffror, gruppseparatorer och en decimalseparator med valfritt negativt tecken. Det här argumentet är skiftlägeskänsligt, så antingenN
ellern
är bra.,
decimaler
Här är ett annat exempel, den här gången med hjälp avN1
för att ange att vi bara vill ha en decimal:
SELECT FORMAT(1, 'N1');
resultat:
1.0
men du kan också öka antalet decimaler också:
1.0
resultat:
1.0000000
i dessa exempel är 1
och 7
kända som precisionsspecifierare.
Precisionsspecifierare är valfria., De kan vara ett värde från 0 till 99, vilket anger precisionen av resultatet. Hur det fungerar beror på formatet specifier som används. För vissa formatspecificerare kommer det att ange det totala antalet siffror i resultatet, för andra kommer det att ange antalet decimaler. I andra fall kommer det att ignoreras helt och hållet. Se hela listan med standard numeriska Formatspecificerare för att se hur precisionsspecifierare påverkar utmatningen från varje formatspecifikator.
procent
följande exempel använder argumentetP
, som formar numret som ett procenttal., Det multiplicerar numret med 100 och lägger sedan till ett lokaliserat procenttecken.
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
Observera att ”Exempel 3” innehåller ett tredje argument som anger vilken kultur som ska användas i utmatningen. I det här fallet använder jagtr-tr
för turkiska. Detta resulterar i att procenttecknet prependeras till numret (i stället för bifogade, som de andra). Det resulterar också i att ett kommatecken används som decimalseparator.
om du inte anger ”kultur” – argumentet används språket för den aktuella sessionen.,
som du kanske kan tänka dig kan du få ganska olika resultat beroende på ditt nuvarande språk eller värdet av något ”kultur” – argument. Se hur språkinställningar kan påverka ditt FORMAT () resultat för fler exempel.
valuta
Du kan användaC
för att returnera ett valutavärde.
SELECT FORMAT(1, 'C');
resultat:
$1.00
Du kan också lägga till i lokalen 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., För att göra detta, användX
argument:
SELECT FORMAT(10, 'X');
resultat:
A
Här är ett annat exempel, den här gången med ett större antal:
SELECT FORMAT(7145, 'X');
resultat:
SELECT FORMAT(10, 'X');
A
Här är ett annat exempel, den här gången med ett större antal:
SELECT FORMAT(7145, 'X');
anpassat format
Du kan också skapa ditt eget anpassade format genom att använda en egen numerisk formatsträng. Detta består av en serie anpassade numeriska formatspecificerare som ger ett mönster för ditt nummer.,
detta förklaras lättare med ett exempel:
SELECT FORMAT(123456789, '##-###-####');
resultat:
12-345-6789
i det här fallet använder jag den siffriga platshållaren (#
). Den siffriga platshållaren tillåter mig att ange ett format för numret, med hjälp av #
symbol som platshållare för varje nummer.
kommatecken
ett annat exempel:
SELECT FORMAT(123456789, '#,#');
resultat:
123,456,789
ledande nollor
en annan anpassad numerisk formatspecifikator är noll (0
)., Du kan använda detta för att pad ett nummer med ledande nollor:
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 också använda det för att ta bort nollor:
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
numeriska formatspecificerare referens
följande artiklar innehåller alla numeriska formatspecificerare som du kan använda med funktionen FORMAT()
tillsammans med T-SQL-exempel.,
- standard numeriska formatsträngar
- anpassade numeriska formatsträngar
dessa är samma formatspecificerare som stöds av.Net Framework (funktionenFORMAT()
bygger på. NET Framework).
datum och tid
funktionenFORMAT()
låter dig också formatera datum och tid.
datum och tid har en separat uppsättning formatspecificerare:
- standard datum-och tidsformat strängar
- anpassade datum-och tidsformat strängar