WITH句


WITH句を使用するとSQLの先頭に仮想のビューのように副問い合わせのビューを定義することができる。
1つのSQLの中に同じ条件の副問い合わせを複数回記述しなければならない場合に使用すると便利



WITH句を使用しなかった場合

SELECT	*
FROM	(SELECT	'test'
		 FROM	DUAL)
UNION ALL
SELECT	*
FROM	(SELECT	'test'
		 FROM	DUAL);


WITH句を使用した場合

WITH	HOGE_V AS 
	(SELECT	'test'
	 FROM	DUAL)
SELECT	*
FROM	HOGE_V
UNION ALL
SELECT	*
FROM	HOGE_V;

ちなみにSQL Serverでも使用可能


WITH句を使用した場合 (SQL Serverの場合)

WITH	HOGE_V AS 
	(SELECT	'test' AS column1)
SELECT	*
FROM	HOGE_V
UNION ALL
SELECT	*
FROM	HOGE_V;

動作確認環境:Oracle 10g,SQL Server 2010