Hitachi

Hitachi Advanced Data Binder AP開発ガイド


5.11.6 HAVING句に関する等価変換(WHERE句への変換)

HAVING句の探索条件が,WHERE句の探索条件に等価変換されることがあります。WHERE句の探索条件に等価変換されると,グループ化の処理でむだな入力行を削減できたり,表の検索にインデクスが利用できたりすることがあります。

WHERE句の探索条件に等価変換される条件の形式を,次に示します。探索条件が等価変換された場合,検索時に使用されるインデクスは等価変換後の探索条件を基に決定されます。

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

留意事項
  • 論理演算のOR条件の中に指定された条件の場合は,この等価変換の対象になりません。

    ただし,この論理演算のOR条件に対して,次に示す等価変換が適用される場合は,次に示す等価変換が適用されたあとに,HAVING句に関する等価変換が適用されます。

    OR条件の中の条件をOR条件の外側に抜き出す等価変換

    OR条件の中の=条件から作成したIN条件をORの外側に追加する等価変換

    OR条件に関する等価変換については,「5.11.1 OR条件に関する等価変換(OR条件の外側への抜き出し)」および「5.11.2 OR条件に関する等価変換(IN条件への変換)」を参照してください。

  • 論理演算のNOTの中に指定された条件,および副問合せを含む条件の場合は,この等価変換の対象になりません。

  • 列指定の列が外への参照列の場合,この等価変換の対象になりません。外への参照列については,マニュアルHADB SQLリファレンス副問合せの指定形式および規則を参照してください。

  • スカラ演算の中に定数だけを指定している場合,そのスカラ演算は定数として扱われることがあります。定数と等価なスカラ演算については,マニュアルHADB SQLリファレンス値式の指定形式および規則規則にある表定数と等価な値式となる条件を参照してください。