Als je een of meer kolommen wilt identificeren op grond van een bepaalde waarde, dan kun je dit beter doen met een WHERE-clause, in plaats van met een HAVING-clause (die meer gebruikt wordt om met kolommen te rekenen), zoals op het forum terecht wordt opgemerkt.
Vandaag een groot verschil tussen WHERE en HAVING vastgesteld:
volgende query werkt niet!
SELECT col1+col2 as somcols FROM tabel WHERE somcols>=5
volgende query werkt wel!
SELECT col1+col2 as somcols FROM tabel HAVING somcols>=5
De oorzaak tussen dit verschil is de aanmaak van de kolom. Bij de eerste query wordt gezocht volgens de WHERE en dan pas geselecteerd, dit leidt tot een probleem in bovengenoemde geval. Bij HAVING wordt eerst de fictieve kolom somcols samengesteld, en dan pas gezocht.