0

次のステートメントを使用して、ビューにパーセンテージ計算を作成します。

round(((Surveys。/。)* 100 )RejectedAsAdvertising、0)ASSurveysResponsesPercentageAdvertising

基本的に、特定の質問(この場合は広告と見なされるもの)への回答数を合計回答数で割ります。

最後に、5つの可能な調査回答(「広告ですか?」、「退屈ですか?」など)のそれぞれのパーセンテージを示す列があります。

これは完全に機能しますが、微調整したいことが1つあります。応答タイプ(広告など)に投票がない場合、計算フィールドはNULL値を受け取ります。

ビューを定義するときに、デフォルト値の0を指定するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

2

COALESCEは、パラメーターがnullの場合の評価を処理するANSI標準の方法であるため、推奨されるアプローチです。ANSIであるため、同じ構文がOracle、SQL Server、Postgresなどでサポートされており、必要に応じてデータベース間でクエリを簡単に移植できます。

COALESCE(round(((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100),0) AS PercentageAdvertising, 0)

IFNULLは、MySQL固有の構文です。

IFNULL(round(((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100),0) AS PercentageAdvertising, 0)
于 2009-12-11T00:41:10.233 に答える
1

そこにが必要ですcoalesce。NULL以外の最初の引数を選択するため、次のようなものが必要です。

coalesce(
    round(
        ((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100)
        ,0)
    ,0)
    AS PercentageAdvertising

次に、ラウンドの結果がNULLの場合、代わりにゼロになります。

于 2009-12-11T00:34:46.030 に答える