PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgres jak zaimplementować kolumnę obliczeniową z klauzulą

Jeśli nie chcesz powtarzać wyrażenia, możesz użyć tabeli pochodnej:

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

Nie będzie to miało żadnego wpływu na wydajność, jest to jedynie cukier składniowy wymagany przez standard SQL.

Alternatywnie możesz przepisać powyższe do wspólnego wyrażenia tabelowego:

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

To, który preferujesz, jest w dużej mierze kwestią gustu. CTE są optymalizowane w taki sam sposób, jak tabele pochodne, więc pierwsza z nich może być szybsza, szczególnie jeśli istnieje indeks na wyrażeniu 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. Jak przełączać bazy danych w psql?

  2. czy instrukcja sql zapewnia atomowość w postgresie?

  3. Jak wybrać za pomocą klauzuli WITH RECURSIVE

  4. Importuj zrzut MySQL do bazy danych PostgreSQL

  5. Jak używać wprowadzania tekstu jako nazw kolumn w funkcji Postgresa?