(ページの作成: == WITH句を使おう == === SQL99で共通表式と呼ばれている記述方法、WITH句を使ってみる。 === *元のSQL…外側のSELECTのFROMにサブクエリ...)
 
1行目: 1行目:
==  WITH句を使おう  ==
+
== SQL99で共通表式と呼ばれている記述方法、WITH句を使ってみる。  ==
 
+
=== SQL99で共通表式と呼ばれている記述方法、WITH句を使ってみる。  ===
+
  
 
*元のSQL…外側のSELECTのFROMにサブクエリーを記述。
 
*元のSQL…外側のSELECTのFROMにサブクエリーを記述。

2010年10月10日 (日) 00:50時点における版

SQL99で共通表式と呼ばれている記述方法、WITH句を使ってみる。

  • 元のSQL…外側のSELECTのFROMにサブクエリーを記述。
SELECT * FROM EMP A  , ( SELECT EMPNO FROM EMP WHERE SAL > 2000) OVER2K
WHERE OVER2K.EMPNO  = A.EMPNO;
  • WITH句を使って書き換えた例。冒頭でサブクエリーを記述し、ビューのように使用できる。
WITH OVER2K AS ( SELECT EMPNO FROM EMP WHERE SAL > 2000)
SELECT * FROM EMP A , OVER2K
WHERE OVER2K.EMPNO  = A.EMPNO;

この単純な例ではあまり恩恵はないですが、システムに数個は出現する(?)巨大なSELECTを記述する際には見やすさで有効と思います。
長大SQLって、パズル組み立てるみたいで面白さもあるけど、大体後で見ると訳わかんないことが多いので。他人のとか特に。
前段にWITHで分離して記述されているだけでも、読みやすいと思われます。

facebook slideshare rubygems github qiita