0

重複の可能性:
SQL の PIVOT で Null を置き換える方法

次の動的 SQL を使用しています。

 select *
    from #tempfinaltable
    pivot (sum(TotalXSAAL) for Section_desc in
    ' + '('+@BranchNames++')) AS AALs'

これは上記のクエリと同じです

select *
from #tempfinaltable
pivot (sum(TotalXSAAL) for Section_desc in
([Communication],[Construction],[Energy],[Financial Institutions],
 [General Property],[HIGHER ED & HEALTHCARE],
 [Inland Marine],[Real Estate])) AS AALs

私がしたいのは、このクエリを実行するときに null をゼロに置き換えることです。

ゼロに置き換えることができるように ISNULL を使用しようとしましたが、機能しません。IsNull の近くで間違ったシャンタックスを言います。それを修正する方法はありますか?

select *
from #tempfinaltable
pivot IsNull((sum(TotalXSAAL),0) for Section_desc in
([Communication],[Construction],[Energy],[Financial Institutions],
 [General Property],[HIGHER ED & HEALTHCARE],
 [Inland Marine],[Real Estate])) AS AALs

私もこれをやってみましたが、どちらもうまくいきませんでした。

select Section_Desc, Zone, ISNULL(Sum(TotalXSAAL),0)
from #tempfinaltable
pivot (sum(TotalXSAAL) for Section_desc in
([Communication],[Construction],[Energy],
 [Financial Institutions],[General Property],
 [HIGHER ED & HEALTHCARE],[Inland Marine],
 [Real Estate])) AS AALs

また、データに null はありませんが、ピボットを使用すると、結果に null が表示されます。理由がわからない。

Example Data
Section_Desc    Zone    TotalXSAAL
Energy           Zone1  0
Energy           Zone2  0
Energy           Zone10 452
Energy           Zone2  1123
Energy            Zone3 87

Sameple Ouput:
ZONE    Communication   Construction    Energy  Financial Institutions  General  property   Higher Ed & Healthcare  Inland Marine   Real estate
ZONE1   10221   NULL    42124   89214211    911243  NULL    123120  1234235

これに対する答えは次のとおりです。 SQL の PIVOT で Null を置換する方法

4

1 に答える 1

0

ピボットする前に、一時テーブルのデータを準備します。

ISNULL(FieldName, '0') as FieldName
于 2013-01-31T13:45:55.700 に答える