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

PostgreSQL nie akceptuje aliasów kolumn w klauzuli WHERE

Zadajesz dwa pytania:
1.

Dlaczego nie mogę odwołać się do aliasu kosztów SELECT w klauzuli WHERE?

2.

Ale po co zamawiać według kosztu; jest dozwolone?


W instrukcji znajdziesz odpowiedź na oba z nich:

Nazwa kolumny wyjściowej może być używana do odwoływania się do wartości kolumny w ORDER BY i GROUP BY klauzul, ale nie w WHERE lub HAVING klauzule; tam musisz zamiast tego napisać wyrażenie.

Jest zdefiniowany przez standard SQL a powodem jest kolejność zdarzeń w SELECT zapytanie. W tym czasie WHERE klauzule są stosowane, kolumny wyjściowe w SELECT lista nie została jeszcze obliczona. Ale jeśli chodzi o ORDER BY , kolumny wyjściowe są łatwo dostępne.

Więc chociaż na początku jest to niewygodne i mylące, to nadal ma sens.

Powiązane:

  • PostgreSQL Warunek gdzie zliczanie
  • Najlepszy sposób na uzyskanie liczby wyników przed zastosowaniem LIMITu



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połącz dwie kolumny i dodaj do jednej nowej kolumny

  2. Podpowiedź w PostgreSQL

  3. Sprawdź, czy tablica Postgres JSON zawiera ciąg

  4. Eksportowanie tabeli AWS Postgres RDS do AWS S3

  5. Postgres:Jak przekonwertować ciąg json na tekst?