SQL での CASE による文字の置き換え

リターンコードなどのように、コード化されている情報しかテーブルに入っていない場合、内容をいちいちマニュアルなどで確認するのは面倒ですよね。

SQL では CASE 〜 WHEN THEN 〜 ELSE 〜 END という形でコードの内容にあわせて置き換えることができます。
最初に書くときはちょっと面倒ですが、一回書いてしまえばいいだけです。大変見やすくなりますのでお勧めです。

CASE QQRCOD
WHEN 'F1' THEN '2 次 からの GROUP BY カラム'
WHEN 'F2' THEN '2 次 からの ORDER BY カラム'
WHEN 'F3' THEN 'GROUP BY カラムと ORDER BY カラムが異なる'
WHEN 'F4' THEN 'DISTINCT'
WHEN 'F5' THEN 'UNION'
WHEN 'F6' THEN 'ORDER BY が 120 カラムまたは 2000 バイトを超えている'
WHEN 'F7' THEN '最適化プログラムがパフォーマンスのためにソートを選びました'
WHEN 'F8' THEN '最適化プログラムが入出力待ち時間を最小限に押さえるためにソートを選びました'
WHEN 'F9' THEN '論理ファイル結合タイプが Query タイプと異なっています'
WHEN 'FA' THEN '複数の物理ファイルが 1 つの論理ファイル形式になっています'
WHEN 'FB' THEN '相関した Group By'
WHEN 'FC' THEN '読み取りトリガー'
WHEN 'FD' THEN '静的カーソル'
WHEN 'H1' THEN ' 照会中のテーブルが結合論理ファイルであって、その結合タイプ (JDFTVAL) が照会に指定された結合タイプと一致しない場合'
WHEN 'H2' THEN '論理テーブルに指定された形式が複数の基礎テーブルを参照しています'
WHEN 'H3' THEN 'テーブルは、複合 SQL ビューであって、その SQL ビューの一時結果を必要としています'
WHEN 'H4' THEN '更新可能照会の場合、副選択はこのテーブルの列で、更新中のいずれかの列と一致する列を参照します'
WHEN 'H5' THEN '更新可能照会の場合、副選択は更新中のテーブルを基礎とした SQL ビューを参照します'
WHEN 'H6' THEN '削除可能照会の場合、副選択は行の削除元テーブル、SQL ビュー、または行の削除元テーブルを基礎とした索引のいずれかを参照します'
WHEN 'H7' THEN 'テーブル関数'
ELSE QQRCOD
END as "REASON CODE",

[Top Pageに戻る]

Ads by TOK2