SQL断片子クエリWITH ASフレーズ

868 ワード

WITH ASは臨時表と違って、ビューとも違っています。例を挙げます。
WITH StuTemp AS
(
	SELECT * FROM T_Students
	WHERE grade='   '
)

SELECT * FROM StuTemp where sex=' ' --  “   ” “   ”  
with...asは前の例のようにsqlクエリ文を含んでいます。Students表は学年が「一年生」に等しいデータを取り出し、「StuTemp」という集合の中に保存します。
その後、集合StuTempを一つのテーブル(照会結果セット)として、再度照会する。
①臨時表と違って、StuTempデータセットはデータベースに保存されていません。一時テーブルを作成する必要はありません。CREATE TABLE〓StuTemp…とDROPEを削除します。 TABLE萼StuTemp…
②ビューとは違って、ビューは仮想テーブルであり、参照ビューの場合のみデータが生成されますが、参照前にまずビューを作成してください。CREATE VIEW…
③WITH ASの方が使いやすいので、事前に仮テーブルやビューを作成する必要はありません。
④WITH ASはクエリ条件を少なく書くことができます。特にUNIONなどの操作はもっと簡潔になります。
WITH       AS
(
	SELECT * FROM T_     
	WHERE       ='   '
), 
      AS
(
	SELECT * FROM T_     
	WHERE       ='   '
)
SELECT * FROM       
UNION
SELECT * FROM      
↑↑↑は、ほぼこの意味です。複数のwithはカンマ、間隔で