Karmaşık bir seçim deyimini basitleştirme işlemindeyim, bu yüzden ortak tablo ifadelerini kullanacağımı düşünün.Tek bir SELECT ifadesinde birden çok ortak tablo ifadesine nasıl sahip olabilirim?
Tek bir cte bildirmek iyi çalışıyor.
WITH cte1 AS (
SELECT * from cdr.Location
)
select * from cte1
Aynı SELECT'te birden fazla cte bildirmek ve kullanmak mümkün mü? Bu sql yani
bir hatayı verir
WITH cte1 as (
SELECT * from cdr.Location
)
WITH cte2 as (
SELECT * from cdr.Location
)
select * from cte1
union
select * from cte2
hata
Msg 156, Level 15, State 1, Line 7
Incorrect syntax near the keyword 'WITH'.
Msg 319, Level 15, State 1, Line 7
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.
NB olduğunu. Ben de noktalı virgül koyarak çalıştı ve bu hatayı Muhtemelen
Msg 102, Level 15, State 1, Line 5
Incorrect syntax near ';'.
Msg 102, Level 15, State 1, Line 9
Incorrect syntax near ';'.
ilgili olmayan olsun ama bu gibi bir şey olması gerektiğini düşünüyorum SQL 2008.
Bu harika. Tempo tablolarını CTE sonuçlarıyla doldurup daha sonra birleştiriyordum, ancak depolanmış bir proba paketlendiğinde yarı kolonlarla ilgili problemlerle karşılaştım. Güzel yöntem! –
'cte2' 'cte1' gibi başvuruda bulunabileceğini unutmayın: ... cte2 olarak (SELECT * FROM cte1 WHERE ...) – Chahk
Harika cevap! :) – pedram