Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dlaczego nie mogę użyć aliasu w kolumnie count(*) i odwołać się do niego w klauzuli o?

Zobacz dokument, do którego odwołuje się CodeByMoonlight, w odpowiedzi na Twoje ostatnie pytanie.

Klauzula HAVING jest oceniana przed SELECT - więc serwer nie wie jeszcze o tym aliasie.

  1. Najpierw iloczyn wszystkich tabel w z tworzona jest klauzula.
  2. Gdzie klauzula jest następnie oceniana w celu wyeliminowania wierszy, które nie spełniają warunku_wyszukiwania.
  3. Następnie wiersze są grupowane przy użyciu kolumn w grupowaniu według klauzula.
  4. W takim razie grupy, które nie spełniają warunku wyszukiwania w havingclause są eliminowane.
  5. Następnie wyrażenia w wybierz Lista celów klauzuli jest oceniana.
  6. Jeśli wyraźne słowo kluczowe jest obecne w klauzuli select, zduplikowane wiersze są teraz eliminowane.
  7. Związek jest pobierany po ocenie każdego pod-wyboru.
  8. Na koniec wynikowe wiersze są sortowane według kolumn określonych w kolejności według klauzula.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaktualizuj wiersz

  2. Przekroczono limit czasu zapytania SQL Server w zależności od klauzuli Where

  3. błąd, ciąg lub dane binarne zostaną obcięte podczas próby wstawienia

  4. Co to jest skalarny UDF w programie SQL Server?

  5. Data obsługi w SQL Server