2012-04-10 20 views
8

テーブルには整数値が設定された2つの列があります。各レコードについて、これらの2つの列の値を分割し、小数点が右側の場所に移動するように出力をフォーマットします。intから小数点へのキャスト

たとえば、1レコードの2つの列の値が4と1で、1を4で割る(1/4にする)場合、出力を25.00にします。

CAST(Total AS Decimal(2))/CAST(TotalAnswers AS Decimal(2)) AS 'Percent' 

私は、小数点のために渡されたパラメータが何を表しているか確認するためにCAST関数の構文の説明を見つけることができませんでした:

は、ここで私は少し前にしようとした最後のものです。私がそれを変更すると、ときどき小数の右側の場所の数が変更されますが、結果は必ずしも私が期待しているとは限りませんので、これについて少し助けてください。

答えて

18

はこのようにそれを書く:、

SELECT CAST(CAST(Total As float)/TotalAnswers * 100 As decimal(8, 2)) 
+0

恐ろしいどうもありがとうございました。 – Darren

2

DECIMAL(2)は、小数点の前の2桁の10進数で、小数点の後の桁はありません。小数点以下はの後に数字を持つことはできません。

DECIMAL(p,s)仕様は、総桁数(p)及び(spよりも大きくなると省略さならば0であることはできない)小数点(s)の桁数を定義します。小数点以下のいくつかの数字の前に、いくつか - またはそのような何か:; - あなたはDECIMAL(4,2)(も2小数点前にそのため、小数点以下の2総4桁)のようなものを使用する必要が

- あなたはあなたの望む結果を見るでしょう! DECIMAL種類とその構文の詳細については

、パラメータの実際のカップルがありますdecimal and numeric

2

にMSDN Books Onlineのトピックを参照してください。..

(p, s) 

  • P小数点以下の桁数の前後の「精度」を表します。小数点以下はです。
  • sは、「スケール」を表します。小数点以下は、です。

1つのパラメータを与えるだけで、精度が得られます。

MDSNを参照してください。

1

小数点データタイプのブックオンライン: 固定の精度と位取りを持つ数値データ型。

小数点[(p [、s])]と数値[(p [、s])] 固定精度と位取り数。最大精度が使用される場合、有効な値は-10^38 + 1から10^38-1です。小数点のSQL-92同義語はdecおよびdec(p、s)です。数値は10進数と機能的に同等です。

p(精度) 小数点の左と右の両方に格納できる小数点以下の桁数の最大値。精度は、1から最大精度の38までの値でなければなりません。デフォルトの精度は18です。

(スケール) 小数点の右側に格納できる最大小数点以下の桁数です。スケールは、0〜pの値でなければなりません。スケールは、精度が指定されている場合にのみ指定できます。デフォルトの縮尺は0です。したがって、0 < = s < = p。最大ストレージサイズは、精度に基づいて異なります。

関連する問題