Hitachi

Hitachi Advanced Data Binder AP開発ガイド


5.11.10 導出問合せを指定したSQL文の探索条件に関する等価変換(導出問合せのWHERE句への移動)

導出問合せを指定したSQL文のWHERE句に指定された探索条件を,導出問合せのWHERE句に移動する等価変換を行います。導出問合せについては,マニュアルHADB SQLリファレンス導出問合せおよび導出問合せ名を参照してください。

等価変換の例を次に示します。例中のC1C2C3は列名を意味しています。

〈この項の構成〉

(1) 等価変換される例

(a) 例1(導出問合せが問合せ指定の場合)

[図データ]

[説明]

導出問合せを指定したSQL文のWHERE句に指定された条件左側の列指定は,導出問合せに指定された問合せ指定の選択式("T1"."C1")を基に導出された導出列("D1"."C1")です。この条件は,等価変換の適用条件を満たしているため,導出問合せを指定したSQL文の探索条件に関する等価変換が適用されます。

(b) 例2(導出問合せが問合せ式の場合)

[図データ]

[説明]

導出問合せを指定したSQL文のWHERE句に指定された条件左側の列指定は,導出問合せに指定された問合せ式の選択式("T1"."C1","T2"."C1")を基に導出された導出列("D1"."C1")です。この条件は,等価変換の適用条件を満たしているため,導出問合せを指定したSQL文の探索条件に関する等価変換が適用されます。

(c) 例3(導出問合せが問合せ指定の場合)

[図データ]

[説明]

導出問合せを指定したSQL文のWHERE句に指定された論理演算のOR条件に含まれる列指定は,導出問合せに指定された問合せ指定の選択式("T1"."C1","T1"."C2","T1"."C3")を基に導出された導出列("D1"."C1","D1"."C2","D1"."C3")です。この論理演算のOR条件は,等価変換の適用条件を満たしているため,導出問合せを指定したSQL文の探索条件に関する等価変換が適用されます。

(d) 例4(導出問合せが問合せ式の場合)

[図データ]

[説明]

導出問合せを指定したSQL文のWHERE句に指定された論理演算のOR条件に含まれる列指定は,導出問合せに指定された問合せ式の選択式("T1"."C1","T1"."C2","T1"."C3","T2"."C1","T2"."C2","T2"."C3")を基に導出された導出列("D1"."C1","D1"."C2","D1"."C3")です。この論理演算のOR条件は,等価変換の適用条件を満たしているため,導出問合せを指定したSQL文の探索条件に関する等価変換が適用されます。

(e) 例5(導出問合せが問合せ指定の場合)

[図データ]

[説明]

導出問合せを指定したSQL文のWHERE句に指定されたIN述語の左側の行値構成子の列指定は,導出問合せに指定された問合せ指定の選択式("T1"."C1","T1"."C2")を基に導出された導出列("D1"."C1","D1"."C2")です。この条件は,等価変換の適用条件を満たしているため,導出問合せを指定したSQL文の探索条件に関する等価変換が適用されます。

(2) 等価変換される条件の形式

等価変換される条件の形式を次に示します。

(3) 留意事項