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

Tại sao tôi không thể sử dụng bí danh cho một tổng thể trong mệnh đề có?

HAVING mệnh đề được đánh giá trước SELECT - vì vậy máy chủ chưa biết về bí danh đó.

  1. Đầu tiên, tích của tất cả các bảng trong FROM mệnh đề được hình thành.

  2. WHERE sau đó mệnh đề được đánh giá để loại bỏ các hàng không thỏa mãn điều kiện tìm kiếm.

  3. Tiếp theo, các hàng được nhóm lại bằng cách sử dụng các cột trong GROUP BY mệnh đề.

  4. Sau đó, các nhóm không đáp ứng search_condition trong HAVING mệnh đề bị loại bỏ.

  5. Tiếp theo, các biểu thức trong SELECT danh sách mục tiêu câu lệnh được đánh giá.

  6. Nếu DISTINCT từ khóa hiện tại trong mệnh đề select, các hàng trùng lặp hiện bị loại bỏ.

  7. UNION được thực hiện sau khi mỗi lựa chọn phụ được đánh giá.

  8. Cuối cùng, các hàng kết quả được sắp xếp theo các cột được chỉ định trong ORDER BY mệnh đề.

  9. TOP mệnh đề được thực thi.

Hy vọng điều này trả lời câu hỏi của bạn. Ngoài ra, nó giải thích tại sao bí danh hoạt động trong ORDER BY mệnh đề.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng bộ giá trị trong mệnh đề SQL IN

  2. Thực thi một thủ tục được lưu trữ bằng Bộ lập lịch tác vụ Windows

  3. varbinary thành chuỗi trên SQL Server

  4. cơ sở dữ liệu đính kèm chỉ đọc

  5. Kết nối các ứng dụng chạy trên Linux với Amazon Relational Database Services (RDS) for SQL Server