OracleでのPostgreSQLの「generate_series」(連続値の生成関数)的な使い方(LEVEL疑似列)
前回、PostgreSQLにおいて、複数行の整数を返すことができる関数「generate_series」を紹介しましたが、
Oracleでは関数ではなく階層問合せ用の「LEVEL疑似列」を使うことで可能になります。
以下のSQLの実行を見てください。(SQLコマンドラインから実行しています)
階層問合せにおいて「CONNECT BY」句は親子関係の条件を指定するのですが、 この場合は 「LEVEL疑似列」自身がそのまま、それ自体として条件づけられるので、 「LEVEL <= 5」により5個以下のレベル値が返るようです。 私自身もよくわかっていないのですが...
さらにこのSQL文をテーブルとして扱えば、以下の様にもできます。
■関連ページ
⇒SELECT文に関する基礎的なこと
⇒SELECT文に関する基礎的なこと2
⇒副問い合わせを含むSELECT文について
⇒集合演算子を使ったSELECT文について
⇒CASE式を使ったSELECT文について
以下のSQLの実行を見てください。(SQLコマンドラインから実行しています)
階層問合せにおいて「CONNECT BY」句は親子関係の条件を指定するのですが、 この場合は 「LEVEL疑似列」自身がそのまま、それ自体として条件づけられるので、 「LEVEL <= 5」により5個以下のレベル値が返るようです。 私自身もよくわかっていないのですが...
さらにこのSQL文をテーブルとして扱えば、以下の様にもできます。
■関連ページ
⇒SELECT文に関する基礎的なこと
⇒SELECT文に関する基礎的なこと2
⇒副問い合わせを含むSELECT文について
⇒集合演算子を使ったSELECT文について
⇒CASE式を使ったSELECT文について
コメント