私はこの主題についてすでに質問された質問のいくつかを見てきましたが、私は答えませんでした。sql - 条件付きWHERE句とCASE文の問題
私は列が、私は私のストアドプロシージャに送信してるのidに応じて、数字やヌル
を保持することができますテーブルを持って、私はどちらかは、IDのは、nullの場所を選択またはID、またはすべてが一致している必要はありそのうちの。
これは私が持っているものですが、動作しません。
私はすべての
SELECT i.indicator_id AS ID,
i.indicator_name_en AS name_en,
h.region_code
FROM indicators i
JOIN hrcc h ON h.hrcc_id = i.hrcc_id
WHERE (CASE WHEN pi_region_id = 51 THEN i.hrcc_id IS NULL
WHEN pi_region_id != 51 OR pi_region_id != 52 THEN i.hrcc_id := pi_region_id
ELSE NULL END)
ORDER BY i.hrcc_id ASC
にそれらを返す、すべてのhrcc_id = nullを
pi_region_idが他hrcc_id = pi_region_id
(それは52だという意味)を51か52ではありません必要pi_region_id = 51件の手段オラクルは私に "ORA-00905:missing keyword"を与え、エラーはi.hrcc_id IS NULL上にあるようです。
私はまだpl/sqlの非常に初心者なので、どんな助けでも大歓迎です。
ありがとうございました!私のテーブルの
UPDATE
例
インジケーター
INDICATOR_ID | INDICATOR_NAME_EN | HRCC_ID
1 |何か| (ヌル)
2 |別の| 1
3 |もう一度| 2
HRCC
HRCC_ID | REGION_CODE
1 | QC
2 |
ON(申し訳ありません...それは良く見てもらうことができませんでした)
私は必要なものときです:
pi_region_id = 51 HRCC_IDがNULL
IS指標の行のみを返すようにpi_region_id = 52 HRCC_ID = 1
ありがとうございます。それはほとんど動作します。 "pi_region_id = 51とi.hrcc_idがヌルです"というpi_region_id入力パラメータに51を入力すると、6行が返されますが、何も返されません。 – Karinne
クエリの他の部分に問題があるはずです。テーブルの代表サンプルを表示できる場合は、さらにトラブルシューティングを行うことができます。 – mathguy
例:where句に到達する前に、一部のhrcc_idが結合条件によって拒否されることがあります。 – mathguy