Tôi đang trong quá trình đơn giản hóa một câu lệnh select phức tạp, vì vậy tôi nghĩ rằng tôi sẽ sử dụng các biểu thức bảng phổ biến.
Tuyên bố một cte hoạt động tốt.
WITH cte1 AS (
SELECT * from cdr.Location
)
select * from cte1
Có thể khai báo và sử dụng nhiều cte trong cùng một SELECT không?
tức là sql này báo lỗi
WITH cte1 as (
SELECT * from cdr.Location
)
WITH cte2 as (
SELECT * from cdr.Location
)
select * from cte1
union
select * from cte2
lỗi là
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. Tôi đã thử đặt dấu chấm phẩy và gặp lỗi này
Msg 102, Level 15, State 1, Line 5
Incorrect syntax near ';'.
Msg 102, Level 15, State 1, Line 9
Incorrect syntax near ';'.
Có lẽ không liên quan nhưng điều này là trên SQL 2008.