sql >> Databasteknik >  >> RDS >> Sqlserver

Varför kan jag inte använda alias i en count(*) kolumn och referera till det i en having-sats?

Se dokumentet som refereras av CodeByMoonlight i ett svar på din senaste fråga.

HAVING-satsen utvärderas före SELECT - så servern känner ännu inte till det aliaset.

  1. Först produkten av alla tabeller i från klausul bildas.
  2. Den var satsen utvärderas sedan för att eliminera rader som inte uppfyller sökvillkoret.
  3. Närnäst grupperas raderna med hjälp av kolumnerna i gruppera efter klausul.
  4. Sedan, grupper som inte uppfyller sökvillkoret i having-satsen elimineras.
  5. Nästa, uttrycken i välj klausulmållistan utvärderas.
  6. Om den särskilda nyckelord som finns i select-satsen, dubbletter av rader är nu eliminerade.
  7. Facket tas efter att varje delval har utvärderats.
  8. Slutligen sorteras de resulterande raderna enligt kolumnerna som anges i ordningen efter klausul.


  1. Vad är vårintegration?

  2. PostgreSQL-privilegier och användarhantering - vad du bör veta

  3. Hur man ökar den tillåtna storleken för bilagor när du skickar e-post i SQL Server (T-SQL)

  4. Hur Atan2d() fungerar i PostgreSQL