現在、次のコードを使用してテーブルをピボットしていますが、完全に機能しています。今度は、「No Data」でヌル値を置き換えた後、合計した後にエラーが発生するので、case文を間違った場所に配置していると思います。Oracle PivotテーブルのNull置換
これは動作します:
SELECT *
FROM (SELECT PROV_NO, DATA_YEAR, DATA_MONTH, MEASURE_ID, CASES
FROM pivot_test_2)
PIVOT (SUM(CASES) FOR (MEASURE_ID) IN ('MORT_30_AMI', 'MORT_30_HF', 'MORT_30_PN'))
order by PROV_NO, DATA_YEAR, DATA_MONTH;
が、これがないではない
SELECT *
FROM (SELECT PROV_NO, DATA_YEAR, DATA_MONTH, MEASURE_ID, CASES
FROM pivot_test_2)
PIVOT (SUM(CASES) FOR (MEASURE_ID) IN ('MORT_30_AMI', 'MORT_30_HF', 'MORT_30_PN'))
case when MORT_30_HF is null then 'No Data' else MORT_30_HF end
order by PROV_NO, DATA_YEAR, DATA_MONTH;
を私は "ORA-00933を:SQLコマンドが正常に終了していません" を取得エラーとして。私は ";"このエラーは依然として同じです。私は現在、Oracle 11gにあり、スクリプト/検索ソフトウェアとしてGoldenを使用しています。
数字以外の列には「データなし」を表示してもよろしいですか?さらなる処理のために出力を使用する場合、これは苦痛になります。あなたがSQLでそれを行うことができる間にあなたが必要とするものがすべて報告されていれば、これはあなたの報告システム/ソフトウェア/アプリケーションによって最もうまくいく仕事です。 – mathguy
それは良い点ですが、そうです、これは最終的な出力であり、それ以上の処理は行われません。これは外向きのレポートのため、No Data文字列が空白文字よりもよく見えるようにします。 – Darw1n34
あなたの報告システムではNULLを「データなし」に置き換えることができます。クエリの結果に文字列が含まれていると、インターフェイスでは、(通常のように)右ではなく左に列が配置される可能性が高くなります。 – mathguy