Número do formato como percentagem no servidor de MS SQL
estou a tentar formatar um número como um por cento com duas casas decimais. Se for 37 dividido por 38 (também conhecido por .973684210526315789), gostaria que mostrasse 97,36 % na produção de SQL. Eu sei que é recomendado para fazer a formatação na aplicação, no entanto isto é para uma exportação automatizada. Isto está usando o servidor SQL 2008.
Eis o que tenho agora:select CONVERT(VARCHAR(50),cast(37 as decimal)/cast(38 as decimal)*100)+' %' AS [%]
se pudesse explicar quais são os vários parâmetros em qualquer função que fosse útil.
19
Author: user3513237, 2015-05-07
4 answers
A resposta de M. Ali pode ser modificada como
select Cast(Cast((37.0/38.0)*100 as decimal(18,2)) as varchar(5)) + ' %' as Percentage
24
Author: Sharad, 2015-05-07 10:11:38
Em SQL Server 2012 e mais tarde, há a FORMAT()
função. Pode passar-lhe um parâmetro 'P'
para a percentagem. Por exemplo:
SELECT FORMAT((37.0/38.0),'P') as [Percentage] -- 97.37 %
A suporta a precisão decimal percentual , pode usar P0
para nenhuma casa decimal (números inteiros) ou P3
para 3 casas decimais (97.368%).
SELECT FORMAT((37.0/38.0),'P0') as [WholeNumberPercentage] -- 97 %
SELECT FORMAT((37.0/38.0),'P3') as [ThreeDecimalsPercentage] -- 97.368 %
55
Author: jbeldock, 2017-09-20 15:41:37
SELECT cast( cast(round(37.0/38.0,2) AS DECIMAL(18,2)) as varchar(100)) + ' %'
RESULT: 0.97 %
4
Author: M.Ali, 2015-05-06 23:47:04
E para todas as versões SQL Server
SELECT CAST(0.973684210526315789 * 100 AS DECIMAL(18, 2))
2
Author: sqluser, 2015-05-07 03:49:03