Tôi đã tự hỏi tại sao tôi không thể sử dụng bí danh trong một số (*) và tham khảo nó trong mệnh đề có. Ví dụ:Tại sao tôi không thể sử dụng bí danh trong cột đếm (*) "và tham chiếu nó trong một mệnh đề có?
select Store_id as StoreId, count(*) as _count
from StoreProduct
group by Store_id
having _count > 0
Sẽ không hoạt động .. Nhưng nó hoạt động nếu tôi xóa _count và sử dụng số (*) thay thế.
Tôi muốn thêm rằng thứ tự của đánh giá là một khái niệm logic trong SQL. Trong thực tế, trình tối ưu hóa truy vấn có thể chọn một thứ tự hoạt động khác, miễn là các kết quả giống như nếu thứ tự logic đã được theo sau. –
Về cơ bản, bí danh được xác định trong mệnh đề chọn sẽ có hai cách sử dụng: 1) Đặt tên cho cột 2) Sắp xếp –
http://blog.sqlauthority.com/2009/04/06/sql-server-logical-query-processing-phases -order-of-statement-execution/không thực sự là câu hỏi trong tầm tay nhưng anh ta có một danh sách tốt về thứ tự sql thực hiện. Chắc chắn có một danh sách chính thức hơn ở đâu đó. 1. TỪ 2. ON 3. OUTER 4. WHERE 5. GROUP BY 6. CUBE | ROLLUP 7. HAVING 8. CHỌN 9. DISTINCT 10 ORDER BY 11. TOP – JKG