Từ tài liệu (đã thêm phần nhấn mạnh):
Bạn có thể sử dụng bí danh cột,
c_alias
, để gắn nhãn biểu thức diễn giải ngay trong danh sách chọn để cột được hiển thị với một tiêu đề mới. Bí danh đổi tên hiệu quả mục danh sách chọn trong suốt thời gian truy vấn. Bí danh có thể được sử dụng trongORDER BY
chứ không phải các mệnh đề khác trong truy vấn.
Vì vậy, bạn không thể tham chiếu đến bí danh trong where
mệnh đề, hiện tại bạn có:
...
AND (account_amt NOT BETWEEN ...
...
Bí danh không hợp lệ tại thời điểm đó, vì vậy nó đang tìm kiếm một cột có tên đó trong một trong các bảng và không tìm thấy một cột. Nó ổn theo thứ tự order by
mặc dù.
Bạn cần thay thế bí danh bằng decode
lặp lại hoặc có thể sử dụng một truy vấn con và sau đó tham chiếu đến bí danh trong where
trong một truy vấn bên ngoài, nhưng điều đó có thể kém hiệu quả hơn tùy thuộc vào mức độ lựa chọn của các điều kiện khác của bạn.