Transacionar SQL usando WITH no CREATE VIEW


14

Eu quero criar VIEW usando cláusulas WITH, mas realmente não consigo encontrar nenhuma referência na sintaxe correta.

Eu quero algo assim

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

E qual é a sintaxe correta para usar várias cláusulas WITH?

Nada útil no MSDN :(

Respostas:


25

O CTE vai para dentro da visualização.

Faça uma consulta com um CTE

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

Basta adicionar CREATE VIEW AS .. GO

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

O MSDN descreve vários CTEs (veja o exemplo j)

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

O truque para mim foi remover alguns parênteses extras. create view myView as ( select ... )funciona e create view myView as with tempTbl as select ...funciona, mas create view myView as ( with tempTbl as select ... )é um erro de sintaxe. `
Molomby

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

bem-vindo ao dba.se e obrigado pela contribuição. Só para você saber, a pergunta aqui é realmente muito básica para o site e provavelmente será encerrada - mas isso não reflete sua resposta :) Dadas as suas habilidades no SQL Server e no postgres, haverá muito mais perguntas sobre tópicos diretamente sua rua, então eu espero que você fique por aqui.
Jack diz que tente topanswers.xyz 26/10/11

Btw postgres é incrível! (falando como um Oracle DBA) Tenho certeza que você concorda :)
Jack diz que tenta topanswers.xyz 26/10/11

1
É bom estar aqui. Eu acho que seria uma pena considerar qualquer pergunta muito básica; embora eu concorde que possa não ser uma questão de administração e possa pertencer a um fórum diferente, talvez empilhe o próprio exchange. Anyhoo obrigado!
Scott Herbert

Acho que você está certo Então é provavelmente o melhor, mas vamos tentar e ser um pouco flexível especialmente se as pessoas já colocar esforço em responder pelo anúncio de que o tempo :)
Jack diz tentativa topanswers.xyz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.