PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL tidak menerima alias kolom dalam klausa WHERE

Anda mengajukan dua pertanyaan:
1.

Mengapa saya tidak dapat merujuk ke alias biaya SELECT di klausa WHERE?

2.

Tapi mengapa memesan dengan desc biaya; diperbolehkan?


Manual memiliki jawaban untuk keduanya di sini:

Nama kolom keluaran dapat digunakan untuk merujuk ke nilai kolom diORDER BY dan GROUP BY klausa, tetapi tidak dalam WHERE atau HAVING klausa; di sana Anda harus menuliskan ekspresinya.

Ini ditentukan oleh standar SQL dan alasannya adalah urutan kejadian dalam SELECT pertanyaan. Pada saat WHERE klausa diterapkan, kolom output di SELECT daftar belum dihitung. Tetapi ketika datang ke ORDER BY , kolom keluaran sudah tersedia.

Jadi, meski awalnya tidak nyaman dan membingungkan, ini masih masuk akal.

Terkait:

  • PostgreSQL Dimana menghitung kondisi
  • Cara terbaik untuk mendapatkan jumlah hasil sebelum LIMIT diterapkan



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql:Membuat skrip eksekusi psql dengan kata sandi

  2. pgadmin4 :server aplikasi postgresql tidak dapat dihubungi.

  3. Bagaimana menemukan tabel yang memiliki kolom tertentu di postgresql

  4. Membuat indeks unik parsial dengan sqlalchemy di Postgres

  5. Menyebarkan Django ke Heroku (Kesalahan Psycopg2)