sql >> Databasteknik >  >> RDS >> PostgreSQL

3 sätt att formatera ett tal som en procentandel i PostgreSQL

Vi har flera alternativ om vi vill visa siffror med ett procenttecken i PostgreSQL.

Vi kan använda TO_CHAR() funktion för att formatera talet tillsammans med procenttecknet. Eller så kan vi helt enkelt sammanfoga talet med procenttecknet, antingen med CONCAT() funktion eller med sammanlänkningsoperatorn.

TO_CHAR() Funktion

Det här alternativet innebär att numret och ett numeriskt mallmönster skickas till funktionen för att returnera talet formaterat på det sätt som specificeras av mallmönstret. För att få ett procenttecken inkluderar vi det i vårt mallmönster:

SELECT TO_CHAR(35, 'fm00D00%');

Resultat:

35.00%

Här använde jag 0 mallmönster, vilket innebär att sifferpositionen alltid kommer att skrivas ut, även om den innehåller en inledande/efterföljande nolla.

Jag använde också fm formatmodifierare för att undertrycka eventuella inledande/efterföljande nollor eller blanksteg.

Här är den med några andra mallmönster:

SELECT 
    TO_CHAR(7, 'fm00%') AS "1",
    TO_CHAR(7, 'fm99%') AS "2",
    TO_CHAR(7.4567, 'fm0D00%') AS "3",
    TO_CHAR(7, 'fm0D00%') AS "4";

Resultat:

+-----+----+-------+-------+
|  1  | 2  |   3   |   4   |
+-----+----+-------+-------+
| 07% | 7% | 7.46% | 7.00% |
+-----+----+-------+-------+

Vi kan göra en beräkning mot antalet vid behov:

SELECT 
    TO_CHAR(35 * 0.1, 'fm99D00%') AS "1",
    TO_CHAR(0.35 * 100, 'fm99D00%') AS "2";

Resultat:

+-------+--------+
|   1   |   2    |
+-------+--------+
| 3.50% | 35.00% |
+-------+--------+

I det här fallet inkluderar jag 9 mallmönster så att eventuella inledande nollor utelämnas.

CONCAT() Funktion

Ett annat sätt att göra det är att använda CONCAT() funktion för att sammanfoga siffran och procenttecknet:

SELECT CONCAT(35, '%');

Resultat:

35%

Konkatenationsoperatören

Ett annat sätt att sammanfoga siffran och procenttecknet är att använda sammanlänkningsoperatorn (|| ):

SELECT 35 || '%';

Resultat:

35%

  1. Vad är @@TEXTSIZE i SQL Server?

  2. Problem med Oracle-bindningsvariabler som inte använder index korrekt

  3. Oracle-inställning per användarens standardschema (inte ändra en session)

  4. Linux – PHP 7.0 och MSSQL (Microsoft SQL)