sql >> Database teknologi >  >> RDS >> Sqlserver

Hvorfor kan jeg ikke bruge alias i en count(*) kolonne og henvise til det i en have-sætning?

Se dokumentet, der henvises til af CodeByMoonlight i et svar på dit seneste spørgsmål.

HAVING-sætningen evalueres før SELECT - så serveren kender endnu ikke til det alias.

  1. Først produktet af alle tabeller i fra klausul er dannet.
  2. Det hvor klausulen evalueres derefter for at eliminere rækker, der ikke opfylder søgebetingelsen.
  3. Dernæst grupperes rækkerne ved hjælp af kolonnerne i gruppe efter klausul.
  4. Derefter, grupper, der ikke opfylder søgebetingelsen i having-sætningen er elimineret.
  5. Næste, udtrykkene i vælg klausulmålliste evalueres.
  6. Hvis den særlige søgeord, der er til stede i select-klausulen, er duplikerede rækker nu elimineret.
  7. Fagforeningen tages efter hvert undervalg er evalueret.
  8. Til sidst sorteres de resulterende rækker i henhold til kolonnerne angivet i rækkefølgen efter klausul.


  1. Udfør lagret procedure fra en funktion

  2. Oracle PL/SQL-masseindsamling med Gem undtagelser Eksempel

  3. Flerkolonneindeks på 3 felter med heterogene datatyper

  4. Hvordan synkroniseres Mysql DB igen, hvis Master og slave har forskellige databaser i tilfælde af Mysql-replikering?