tôi cần phải hỏi làm thế nào có thể sử dụng bí danh trong Select Query,Sử dụng bí danh trong Select Query
tôi cần điều này
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
tôi cần phải hỏi làm thế nào có thể sử dụng bí danh trong Select Query,Sử dụng bí danh trong Select Query
tôi cần điều này
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
Bạn không thể làm điều này:
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
Bạn tuy nhiên có thể làm này:
SELECT (Another Sub Query WHERE ID = A.somecolumn)
FROM table
JOIN SELECT (Complex SubQuery) AS A on (A.X = TABLE.Y)
Hoặc
SELECT (Another Sub Query)
FROM table
WHERE table.afield IN (SELECT Complex SubQuery.otherfield)
Vấn đề là bạn không thể tham khảo các bí danh như thế này trong mệnh đề SELECT và WHERE, bởi vì chúng sẽ không được đánh giá theo thời gian phần được chọn hoặc phần được thực hiện.
Bạn cũng có thể sử dụng mệnh đề having
, nhưng có điều khoản không sử dụng các chỉ mục và cần tránh nếu có thể.
?? Có lẽ bạn có nghĩa là: "WHERE ID = A.SomeColumn' –
Bạn (và OP) đang sử dụng' A' như một bí danh bảng và như một bí danh cột (ở những nơi khác nhau). –
@ypercube, đã sửa nó ngay bây giờ. – Johan
Bạn có thể viết lại truy vấn của bạn như thế này
SELECT Complex.A, (Another Sub Query WHERE ID = Complex.A)
FROM TABLE
CROSS JOIN ((Complex SubQuery) AS A) Complex
Một giải pháp mà bạn có thể sử dụng:
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A)
FROM
TABLE MAIN
OUTER APPLY (SELECT (Complex SubQuery) AS A)
tôi nghi ngờ câu trả lời là để thay đổi phức tạp biểu hiện 'SubQuery' vô hướng của bạn thành một biểu bảng nhưng thật khó để gỡ lỗi mã mà chúng ta không thể nhìn thấy. – onedaywhen
Tôi đồng ý với bạn. Tôi cần phải làm cho truy vấn này hiệu quả. – user960567