CREATE VIEW içinde WITH kullanarak SQL işlem yapın


14

WITH yan tümcelerini kullanarak VIEW oluşturmak istiyorum, ancak gerçekten doğru sözdizimi üzerinde herhangi bir başvuru bulamıyorum.

Böyle bir şey istiyorum

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

Ve birden fazla WITH deyimi kullanmak için doğru sözdizimi nedir?

MSDN'de yararlı bir şey yok :(

Yanıtlar:


25

CTE görünümün içine girer.

CTE ile sorgu alma

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

Sadece OLUŞTURMA OLUŞTURMA OLUŞTURUNU ekleyin .. GİT

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

MSDN birden çok CTE'yi tanımlar (bkz. Örnek j)

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

Benim için hile bazı ekstra parantez kaldırmak oldu. create view myView as ( select ... )çalışır ve create view myView as with tempTbl as select ...çalışır ancak create view myView as ( with tempTbl as select ... )bir sözdizimi hatasıdır. ``
Molomby

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

dba.se'ye hoş geldiniz ve katkınız için teşekkürler. Bildiğiniz gibi, buradaki soru site için gerçekten çok temel ve muhtemelen kapatılacak - ancak cevabınız üzerinde bir yansıma yok :) SQL Server ve postgres yetenekleriniz göz önüne alındığında, konu hakkında çok daha fazla soru olacak Bu yüzden umarım etrafta dolaşırsın.
Jack diyor ki topanswers.xyz

Btw postgres harika! (Oracle DBA olarak konuşuyorum) Kabul
ettiğine

1
Burada olmak güzel. Bence herhangi bir soruyu çok basit düşünmek utanç verici olurdu; Her ne kadar bunun bir yönetim sorusu olmayabileceğini ve farklı bir foruma ait olabileceğini kabul etsem de, belki de yığın değişiminin kendisi. Anyhoo teşekkürler!
Scott Herbert

Haklı SO muhtemelen en iyi olduğunu düşünüyorum, ama biz denemek ve insanlar zaten :) zaman biz bildirimle yanıtlayan içine çaba koydu özellikle biraz esnek olması
Jack diyor topanswers.xyz deneyin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.