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

ORA-00904 định danh không hợp lệ trên bí danh giải mã

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 trong ORDER 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:Làm cách nào để thêm phút vào dấu thời gian?

  2. Trong trình kích hoạt Oracle, tôi có thể gán mới và cũ cho một biến kiểu hàng không?

  3. Cách cài đặt song song ODP.NET 2.111 và ODP.NET 4.112 trong cùng một máy trong khi cả hai đều trỏ đến cùng một máy chủ cơ sở dữ liệu

  4. Có cách nào tốt nhất để tránh thực thi quá trình nhiều lần trong Oracle không?

  5. Không thể đăng nhập vào cơ sở dữ liệu bằng SYS với Oracle SQL Developer