web-dev-qa-db-ja.com

MS SQL Serverのパーセントとしての形式番号

数字を小数点以下2桁のパーセントでフォーマットするだけです。 37を38で割ったもの(別名.973684210526315789)の場合、SQL出力に97.36%を表示したいと思います。アプリケーションでフォーマットを行うことをお勧めしますが、これは自動エクスポート用です。これはSQL Server 2008を使用しています。

ここに私が持っているものがあります:

select CONVERT(VARCHAR(50),cast(37 as decimal)/cast(38 as decimal)*100)+' %' AS [%]

役立つと思われる関数で、さまざまなパラメーターが何であるかを説明できる場合。

27
user3513237

M.ALiの答えは、

select Cast(Cast((37.0/38.0)*100 as decimal(18,2)) as varchar(5)) + ' %' as Percentage
35
Sharad

SQL Server 2012以降には、 FORMAT() 関数があります。 'P'パラメーターをパーセンテージで渡すことができます。例えば:

SELECT FORMAT((37.0/38.0),'P') as [Percentage] -- 97.37 %

パーセントの小数精度をサポート には、P0を小数なし(整数)またはP3を使用して3つの小数(97.368%)を使用できます。

SELECT FORMAT((37.0/38.0),'P0') as [WholeNumberPercentage] -- 97 %
SELECT FORMAT((37.0/38.0),'P3') as [ThreeDecimalsPercentage] -- 97.368 %
78
jbeldock
SELECT cast( cast(round(37.0/38.0,2) AS DECIMAL(18,2)) as varchar(100)) + ' %'

RESULT:  0.97 %
5
M.Ali

すべてのSQL Serverバージョン

SELECT CAST(0.973684210526315789 * 100 AS DECIMAL(18, 2))
3
sqluser

SQL Serverの新しいバージョンでFORMAT関数を使用すると、はるかに簡単になり、より多くの制御が可能になります。

FORMAT(yournumber, '#,##0.0%')

この利点は、千単位の区切り記号などの追加の要素を制御でき、数字と「%」の間にスペースがないことです。

2
Simon Darlow