Đã bị mắc kẹt với SQL2000 cho đến nay quá lâu, tôi đã không thực sự có rất nhiều tiếp xúc với biểu thức bảng chung.Để CTE hoặc không CTE
Câu trả lời tôi đã đưa ra here (#4025380) và here (#4018793) đã đi ngược dòng chảy ở chỗ họ không sử dụng CTE.
Tôi đánh giá cao việc đệ quy chúng là guốc beez, và có một số truy vấn có thể được đơn giản hóa rất nhiều bằng cách sử dụng chúng, nhưng tại thời điểm nào thì việc sử dụng chúng chỉ phù phiếm? Họ có lợi ích hiệu suất tuyệt vời so với truy vấn con hay tham gia không? Họ có thực sự đơn giản hóa mã và làm cho nó dễ bảo trì hơn không?
Tóm lại, khi nào thực hành tốt là sử dụng CTE trên cú pháp 'nhỏ hơn'.
Cùng có lợi như với nhiều mô hình lập trình khác: chia và chinh phục. Hãy xem qua trang dữ liệu. Một số người sử dụng tốt các CTE để làm cho các truy vấn dễ đọc hơn nhiều. ví dụ. http://odata.stackexchange.com/stackoverflow/s/299/how-long-until-i-get-the-generalist-badge – Jacob
@Jacob đáng để trả lời đúng. –
Chỉ cần cập nhật, bây giờ tôi sử dụng CTE rất nhiều. Việc có thể phá vỡ quy trình thành các bước nhỏ hơn làm cho truy vấn phức tạp dễ đọc hơn nhiều.Nó lưu hoặc lồng mã trong câu lệnh SQL cuối cùng hoặc phải tạo và tham chiếu các khung nhìn bên ngoài. –