Câu hỏi của tôi ở đây là sự khác biệt giữa CTE
và View
trong SQL là gì. Ý tôi là trong trường hợp nào tôi nên sử dụng CTE
và trường hợp nào là View
. Tôi biết rằng cả hai đều là một số loại bảng ảo nhưng tôi không thể phân biệt việc sử dụng chúng.SQL - CTE vs VIEW
Tôi đã tìm thấy một câu hỏi tương tự here nhưng đó là về hiệu suất.
Cập nhật 1:
Ví dụ: Tôi có một cơ sở dữ liệu đầy nghề (tbl_trade
). Tôi cần chọn từ 3,5 triệu bản ghi chỉ các giao dịch được mở tháng hiện tại cho đến thời điểm hiện tại và sau đó thao tác dữ liệu (với các truy vấn khác nhau trên bảng ảo - điều này trông giống như Xem). Vấn đề ở đây là tôi muốn một SUM
của 3-4 cột và sau đó tôi cần phải SUM
một số cột và tạo một cột ảo với kết quả (trông giống như CTE).
Ví dụ: tbl_trade
có các cột: profit
, bonus
và expenses
. Tôi cần SUM(profit)
, SUM(bonus)
, SUM(expenses)
và cột mới total
sẽ bằng SUM(profit)
+ SUM(bonus)
+ SUM(expenses)
.
PS. Chạy lại các truy vấn cho SUM
không phải là một tùy chọn vì tôi đã có kết quả.
Cảm ơn trước!
Chế độ xem là một đối tượng trong cơ sở dữ liệu. CTE chỉ tồn tại trong khoảng thời gian của một truy vấn. Họ có vẻ rất khác nhau. Bạn có thể cung cấp một ví dụ về lựa chọn giữa chúng? –
Bạn đang xử lý bao nhiêu dữ liệu? CTE sử dụng rộng rãi TempDb và nếu TempDb của bạn không được định cấu hình đúng hoặc CTE của bạn đang xử lý nhiều hàng thì đó không phải là đặt cược tốt nhất. Chọn Xem khi xử lý lượng lớn dữ liệu và CTE với số lượng nhỏ. Bạn cũng có thể chọn CTE khi bạn cần đệ quy. Đó là tất cả ! –
Xin chào và cảm ơn các câu trả lời của bạn. xem các câu hỏi được cập nhật – BlackM