Transaksi SQL menggunakan WITH dalam CREATE VIEW


14

Saya ingin membuat LIHAT menggunakan klausa DENGAN, tetapi benar-benar tidak dapat menemukan referensi tentang sintaks yang benar.

Saya ingin sesuatu seperti ini

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

Dan apa sintaks yang benar untuk menggunakan beberapa klausa DENGAN?

Tidak ada yang berguna di MSDN :(

Jawaban:


25

CTE masuk ke dalam tampilan.

Ambil kueri dengan CTE

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

Cukup tambahkan CREATE VIEW AS .. GO

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

MSDN memang menggambarkan beberapa CTE (Lihat contoh j)

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

Trik bagi saya adalah menghapus beberapa tanda kurung tambahan. create view myView as ( select ... )berfungsi dan create view myView as with tempTbl as select ...berfungsi tetapi create view myView as ( with tempTbl as select ... )merupakan kesalahan sintaksis. `
Molomby

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

selamat datang di dba.se dan terima kasih atas kontribusinya. Asal tahu saja, pertanyaannya di sini benar-benar terlalu mendasar untuk situs ini dan mungkin akan ditutup - tetapi itu tidak mencerminkan jawaban Anda :) Mengingat keahlian Anda tentang SQL Server dan postgres, akan ada lebih banyak lagi pertanyaan tentang topik di atas jalanmu, jadi aku harap kamu tetap disini.
Jack bilang coba topanswers.xyz

Btw postgres is awesome! (berbicara sebagai Oracle DBA) Saya yakin Anda setuju :)
Jack mengatakan coba topanswers.xyz

1
Senang berada di sini. Saya pikir itu memalukan untuk mempertimbangkan pertanyaan yang terlalu mendasar; Meskipun saya setuju itu mungkin bukan pertanyaan administrasi dan mungkin termasuk dalam forum yang berbeda, mungkin menukar pertukaran itu sendiri. Anyhoo terima kasih!
Scott Herbert

Saya pikir Anda benar SO mungkin yang terbaik, tetapi kami mencoba dan menjadi sedikit fleksibel terutama jika orang sudah berusaha menjawab pada saat kami perhatikan :)
Jack mengatakan coba topanswers.xyz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.