I am trying to simply format a number as a percent with two decimal places. If it is 37 divided by 38 (aka .973684210526315789), I would like it to show 97.36 % in the SQL output. I know it is recommended to do formatting in the Application, however this is for an automated export. This is using SQL Server 2008.
Here is what I have now:
select CONVERT(VARCHAR(50),cast(37 as decimal)/cast(38 as decimal)*100)+' %' AS [%]
If you could explain what the various parameters are as well in any function that would be helpful.
In SQL Server 2012 and later, there is the FORMAT()
function. You can pass it a 'P'
parameter for percentage. For example:
SELECT FORMAT((37.0/38.0),'P') as [Percentage] -- 97.37 %
To support percentage decimal precision, you can use P0
for no decimals (whole-numbers) or P3
for 3 decimals (97.368%).
SELECT FORMAT((37.0/38.0),'P0') as [WholeNumberPercentage] -- 97 %
SELECT FORMAT((37.0/38.0),'P3') as [ThreeDecimalsPercentage] -- 97.368 %