Entendendo e usando CTE (Common Table Expression)

As CTE’s são muito semelhantes às tabelas derivadas, mas com uma boa vantagem…

De acordo com o BOL a estrutura para uma CTE é:

Uma comparação de uso entre uma tabela derivada e uma CTE:

Tabela derivada:

Usando CTE:

Note o ‘;’ antes do WITH… Ele está lá por eu considerar uma boa prática, uma vez que sempre que você utilizar uma CTE, caso tenha alguma outra consulta antes, ela obrigatoriamente deve terminar com o ‘;’. Então, por via das dúvidas, sempre coloque ele antes do WITH, quando for usar uma CTE.

Até aí, nada demais, certo?

Mas a coisa melhora agora… quando falamos em múltiplas CTE’s x múltiplas tabelas derivadas

Se você precisa utilizar mais de uma tabela derivada e referenciar uma dentro de outra (aninhamento de tabelas), o código pode ficar terrível de ler, por mais bem documentado que ele seja. Um exemplo (bem esdrúxulo) usando aninhamento de tabelas derivadas:

Agora, a mesma consulta, usando CTE:

Como podem ver, o código fica muio mais legível, mais fácil de entender…

Por agora era isso. Outra hora eu pretendo falar sobre as CTE’s Recursivas.

[]’s

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.