Transact SQL za pomocą WITH w CREATE VIEW

14

Chcę utworzyć VIEW przy użyciu klauzul WITH, ale tak naprawdę nie mogę znaleźć żadnych referencji dotyczących poprawnej składni.

Chcę czegoś takiego

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

Jaka jest poprawna składnia do używania kilku klauzul WITH?

Nic użytecznego w MSDN :(

bazzilic
źródło

Odpowiedzi:

25

CTE wchodzi do widoku.

Weź zapytanie za pomocą CTE

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

Wystarczy dodać UTWÓRZ WIDOK JAKO .. GO

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

MSDN opisuje wiele CTE (patrz przykład j)

CREATE VIEW
AS
WITH
   cte1 AS (...),
   cte2 AS (...),
   cte3 AS (...)
SELECT ...
GO
gbn
źródło
Sztuczka polegała na usunięciu dodatkowych nawiasów. create view myView as ( select ... )działa i create view myView as with tempTbl as select ...działa, ale create view myView as ( with tempTbl as select ... )jest błędem składni. `
Molomby,
6
CREATE VIEW 
someview
AS
WITH CTEstuff AS (SELECT etc)
SELECT * FROM CTESTuff;
Scott Herbert
źródło
witamy na dba.se i dziękujemy za wkład. Po prostu wiesz, że pytanie tutaj jest naprawdę zbyt podstawowe dla strony i prawdopodobnie zostanie zamknięte - ale to nie odzwierciedla refleksji na twoją odpowiedź :) Biorąc pod uwagę twoje umiejętności w SQL Server i postgresie, będzie o wiele więcej pytań na temat od razu twoją ulicę, więc mam nadzieję, że zostaniesz.
Jack mówi, że spróbuj topanswers.xyz
Btw postgres jest niesamowity! (mówiąc jako Oracle DBA) Jestem pewien, że się zgadzasz :)
Jack mówi, spróbuj wypróbować topanswers.xyz
1
Miło tu być. Myślę, że wstyd byłoby uważać każde pytanie za zbyt podstawowe; chociaż zgadzam się, że to nie może być pytanie administracyjne i może należeć do innego forum, być może sama wymiana stosów. Anyhoo dzięki!
Scott Herbert
Myślę, że masz rację SO jest prawdopodobnie najlepsze, ale staramy się być trochę elastyczni, szczególnie jeśli ludzie włożyli już wysiłek w udzielenie odpowiedzi, zanim to zauważymy :)
Jack mówi, spróbuj spróbować topanswers.xyz