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

Postgres cách triển khai cột được tính toán với mệnh đề

Nếu bạn không muốn lặp lại biểu thức, bạn có thể sử dụng bảng dẫn xuất:

select *
from (
   select id, cos(id) + cos(id) as op 
   from myTable 
) as t 
WHERE op > 1;

Điều này sẽ không có bất kỳ tác động nào đến hiệu suất, nó chỉ là đường cú pháp theo yêu cầu của tiêu chuẩn SQL.

Ngoài ra, bạn có thể viết lại phần trên thành một biểu thức bảng chung:

with t as (
  select id, cos(id) + cos(id) as op 
  from myTable 
)
select *
from t 
where op > 1;

Cái nào bạn thích phần lớn là vấn đề về hương vị. CTE được tối ưu hóa theo cách tương tự như bảng dẫn xuất, vì vậy CTE đầu tiên có thể nhanh hơn, đặc biệt nếu có chỉ mục trên biểu thức cos(id) + cos(id)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các thủ tục được lưu trữ có chạy trong giao dịch cơ sở dữ liệu trong Postgres không?

  2. Lỗi khi sử dụng R để lấy thông tin đăng nhập từ Windows Cred Vault

  3. Chọn vị trí chữ cái đầu tiên trong một phạm vi (PostgreSQL)

  4. PostgreSQL:truyền chuỗi thành ngày DD / MM / YYYY

  5. Sự khác biệt giữa văn bản và varchar (ký tự thay đổi)