Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengapa saya tidak bisa menggunakan alias untuk agregat dalam klausa yang memiliki?

HAVING klausa dievaluasi sebelum SELECT - jadi server belum tahu tentang alias itu.

  1. Pertama, produk dari semua tabel di FROM klausa terbentuk.

  2. WHERE klausa kemudian dievaluasi untuk menghilangkan baris yang tidak memenuhi search_condition.

  3. Selanjutnya, baris dikelompokkan menggunakan kolom di GROUP BY klausa.

  4. Kemudian, grup yang tidak memenuhi search_condition di HAVING klausa dihilangkan.

  5. Selanjutnya, ekspresi dalam SELECT daftar target pernyataan dievaluasi.

  6. Jika DISTINCT kata kunci yang ada di klausa pilih, baris duplikat sekarang dihilangkan.

  7. UNION diambil setelah setiap sub-pilihan dievaluasi.

  8. Akhirnya, baris yang dihasilkan diurutkan menurut kolom yang ditentukan dalam ORDER BY klausa.

  9. TOP klausa dieksekusi.

Semoga ini menjawab pertanyaan Anda. Juga, ini menjelaskan mengapa alias bekerja di ORDER BY klausa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Panggil ke fungsi yang tidak ditentukan sqlsrv_connect() - Pemecahan Masalah

  2. Menggunakan jumlah baris dari tabel sementara dalam loop sementara SQL Server 2008

  3. SQL Server:Kiat Berguna untuk Pemula

  4. Tulis angka dengan dua tempat desimal SQL Server

  5. Secara terprogram mengambil sumber prosedur tersimpan SQL Server yang identik dengan sumber yang dikembalikan oleh gui SQL Server Management Studio?