CREATE VIEWでWITHを使用したTransact SQL


13

WITH句を使用してVIEWを作成したいのですが、実際には正しい構文に関する参照が見つかりません。

こんな感じ

WITH TempTbl AS (SELECT ...)
CREATE VIEW SomeView
SELECT *
FROM TempTbl

そして、いくつかのWITH句を使用するための正しい構文は何ですか?

MSDNで有用なものはありません:(

回答:


24

CTEはビュー内に入ります。

CTEでクエリを実行する

WITH cte AS (...) SELECT ...;

CREATE VIEW AS .. GOを追加するだけです

CREATE VIEW
AS
WITH cte AS (...) SELECT ...;
GO

MSDNは複数のCTEについて説明しています(例jを参照)

CREATE VIEW
AS
WITH
   cte1 AS (...),
   cte2 AS (...),
   cte3 AS (...)
SELECT ...
GO

私にとってのトリックは、余分な括弧を削除することでした。create view myView as ( select ... )正常にcreate view myView as with tempTbl as select ...動作create view myView as ( with tempTbl as select ... )しますが、構文エラーです。`
モロンビー

6
CREATE VIEW 
someview
AS
WITH CTEstuff AS (SELECT etc)
SELECT * FROM CTESTuff;

dba.seへようこそ。貢献していただきありがとうございます。ご存知のように、ここでの質問はサイトにとってはあまりにも基本的であり、おそらく閉じられます-しかし、それはあなたの答えには反映されていません:)あなたの街です。
ジャックダグラス

ところでpostgresは素晴らしい!(Oracle DBAとして話す)私はあなたが同意すると確信しています:)
ジャックダグラス

1
ここにいてよかった。基本的な質問を考えすぎるのは残念だと思います。私はそれが管理上の質問ではなく、別のフォーラム、おそらくスタック交換自体に属している可能性があることに同意しますが。どうもありがとう!
スコットハーバート

私はあなたが正しいと思うので、おそらく最善ですが、私たちは、特に気づくまでに回答にすでに努力している場合は少し柔軟にしようとしています:
ジャックダグラス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.