タグ

ブックマーク / www.shift-the-oracle.com (3)

  • 外部結合 - オラクル・Oracle SQL 入門

    外部結合とは (OUTER JOIN) 外部結合とは、SQL において(通常の)結合条件の場合では対応するレコードがない場合にも指定した核となるテーブルからのレコードが除外されない結合方法である。 2つのテーブルを結合してレコードを取得するときに、結合条件を除いた条件で一方のテーブルの条件を満たすレコードを常に取得したい要件に使用する。 例えば、「取引している会社一覧」に営業担当の社員を付して表示するとき 取引会社先一覧マスターと営業社員一覧マスターを結合して問い合わせをしようとするだろう。 このときに新規開拓した取引先なので営業担当が未決定の場合に通常の結合では新規の取引先が問い合わせ結果に含まれなくなる。もちろん表示しなくて良いということはなく「営業担当:未決」として表示したいのが自然である。 外部結合演算子 (+) 下の表データにおいて 左のテーブル (TABLE1) はすべて残して

  • ネステッド・ループ結合 - オラクル・Oracleをマスターするための基本と仕組み

    ネステッド・ループ結合 (NESTED LOOP JOIN) ネステッドループ結合とは、もっとも基的な結合である。例えば2つの表におけるネステッドループ結合を2重ループした繰り返し処理のプログラムを想像するとシンプルに理解できる。 SELECT t1.colA, t2.colB FROM t1, t2 WHERE t1.key1 = t2.key2 and t1.colA = 'A' and t2.colB = 'B' という SQL について考えてみる。 テーブル t1 は配列 a1、テーブル t2 を配列 a2 と置き換えると 探索する アルゴリズム (A) は 準備 変数 conditionA に条件 'A' を代入する 変数 conditionBに条件 'B' を代入する 変数 conditionA、conditionB を引数に以下の処理を呼び出す 処理の内容 配列 a1 を

  • CASE と DECODE 関数の違い - オラクル・Oracleをマスターするための基本と仕組み

    CASE 式 と DECODE 関数の違い 標準 SQL の CASE 式 とオラクルの SQL 特有の DECODE 関数は、ほぼ同じ機能をもち、CASE 式 も DECODE 関数 も短絡評価(※)であるが、この2つは NULL の取り扱い方で大きく異なっている。 (※) 短絡評価(ショートサーキット:short circuit evaluation):条件に該当するものが見つかると後続の条件は評価しない DECODE 関数 よく知られた非常に便利な変換関数、引数がある値のときに別の値に変換する関数である。 DEOCDE のパラメータ数の上限は 255 であり、当然条件指定はそれ以下(条件と結果で 2 パラメータのため 127 以下)になる。 CASE 式 もほぼ同数の上限がある。 検索 CASE 式 のように評価する式が個々に設定できないため、範囲指定などの条件指定が基的に行えない

  • 1