sql >> Databasteknik >  >> RDS >> Sqlserver

4 sätt att konvertera ett tal till en procentandel i SQL Server (T-SQL)

Här är 4 sätt att konvertera ett tal till ett procentvärde i SQL Server.

Strängt taget "konverterar" vi det faktiskt inte till en procentandel. Vi formaterar siffran som en procentsats. Men för att göra det måste vi konvertera numret från en numerisk datatyp till en sträng.

Här är fyra sätt att göra det.

Exempel 1 – FORMAT()-funktionen

Det mest uppenbara valet att använda är FORMAT() fungera. Detta gör att du kan visa siffror och datum i ett specifikt format.

Här är ett exempel på hur du använder den här funktionen för att visa en siffra i procent:

SELECT FORMAT(55, 'P') Result;

Resultat:

+------------+
| Result     |
|------------|
| 5,500.00 % |
+------------+

Lägg märke till att fyra nollor lades till vårt värde (två före decimalkomma och två efter).

Följande skulle krävas för att göra detta till 55 procent:

SELECT FORMAT(.55, 'P') Result;

Resultat:

+----------+
| Result   |
|----------|
| 55.00 %  |
+----------+

Om siffran är det faktiska procentvärde du vill ha kan du göra så här:

SELECT FORMAT(55 * .01, 'P') Result;

Resultat:

+----------+
| Result   |
|----------|
| 55.00 %  |
+----------+

Du kan också ta bort bråkdelen genom att lägga till en nolla i formatspecifikationen:

SELECT FORMAT(.55, 'P0') Result;

Resultat:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Om det behövs kan du även lägga till fler decimaler:

SELECT FORMAT(.55123456, 'P7') Result;

Resultat:

+--------------+
| Result       |
|--------------|
| 55.1234560 % |
+--------------+

Exempel 2 – Funktionen CONVERT()

Du kan alternativt använda CONVERT() funktion för att konvertera talet till en sträng och lägg sedan till ett procenttecken i slutet.

Detta kan tyckas lite onödigt med tanke på hur enkelt det föregående exemplet gjorde det, men FORMAT() Funktionen introducerades bara i SQL Server 2012. Därför är det så här du kommer att behöva göra det om du använder en tidigare version av SQL Server.

SELECT CONVERT(VARCHAR(4), 55) + ' %' Result;

Resultat:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Naturligtvis, om ditt nummer är något som .55 och du behöver det för att visas som 55,00 %, då kan du alltid multiplicera det med 100:

SELECT CONVERT(VARCHAR(6), 0.55 * 100) + ' %' Result;

Resultat:

+----------+
| Result   |
|----------|
| 55.00 %  |
+----------+

I det här fallet ökade jag också storleken på varchar datatyp för att tillgodose de extra tecknen.

Du kan också ta bort bråkdelen genom att använda LEFT() funktion:

SELECT CONVERT(VARCHAR(6), LEFT(0.55 * 100, 2)) + ' %' Result;

Resultat:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Även om du måste vara försiktig när du gör detta, eftersom det faktiska värdet kan variera till mer eller mindre än 2. I så fall kan du använda TRIM() funktion för att trimma inledande nollor och/eller efterföljande punkter:

SELECT CONVERT(VARCHAR(6), TRIM('0,.' FROM LEFT(0.55 * 100, 3))) + ' %' Result;

Resultat:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Detta är dock inte perfekt, och FORMAT() funktion ger uppenbarligen mycket mer flexibilitet med ett minimum av kod.

Exempel 3 – CAST()-funktionen

Vi kan alternativt använda CAST() funktion för att göra samma sak som föregående exempel:

SELECT CAST(55 AS VARCHAR(4)) + ' %' Result;

Resultat:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Observera att CAST() och CONVERT() använder lite olika syntaxer. I fallet med CAST() värdet som ska kastas kommer först, medan det är tvärtom med CONVERT() .

Exempel 4 – CONCAT() Funktion

Du kan också använda CONCAT() funktion för att sammanfoga ett tal med procenttecknet:

SELECT CONCAT(55, ' %') Result;

Resultat:

+----------+
| Result   |
|----------|
| 55 %     |
+----------+

Den här funktionen konverterar implicit alla argument till strängtyper före sammanlänkning.


  1. Uppdatera SQL-läge i MySQL

  2. Databasreorganiseringar – varför de är viktiga

  3. Webbseminarium:Spårning av frågeförlopp i SQL Server

  4. Åtgärda SQL-databasåterställning väntande problem med nekad åtkomst