Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sử dụng một CTE nhiều lần

CTE về cơ bản là chế độ xem dùng một lần. Nó chỉ tồn tại trong một câu lệnh và sau đó tự động biến mất.

Các tùy chọn của bạn bao gồm:

  • Xác định lại CTE lần thứ hai. Điều này đơn giản như sao chép-dán từ WITH... từ cuối định nghĩa đến trước SET của bạn .

  • Đặt kết quả của bạn vào #temp bảng hoặc một @table biến

  • Vật chất hóa các kết quả thành một bảng thực và tham chiếu đến

  • Thay đổi một chút thành chỉ SELECT COUNT từ CTE của bạn:

.

SELECT @total = COUNT(*)
FROM Players p 
INNER JOIN Teams t 
    ON p.IdTeam=t.Id 
INNER JOIN Leagues l 
    ON l.Id=t.IdLeague
WHERE [email protected]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lấy Giá trị trước cho Giá trị Null

  2. Cách tốt nhất để lấy ký tự indexof cuối cùng trong SQL 2008 là gì

  3. Thực hiện regex (thay thế) trong một truy vấn SQL

  4. Tạo tập lệnh cho các bản ghi cụ thể trong SQL Server

  5. Sao chép dữ liệu vào một bảng khác