02.09.2015, Vladimír Klaus, navštíveno 5850x

MS Access
SQL

Každý dotaz se skládá z několika částí – klíčových slov, predikátů, podmínek, řazení apod. Možná se vám to zná poměrně nepodstatné, ale je velmi důležité vědět, v jakém pořadí se jednotlivé části vyhodnocují. Tím se vám také objasní, proč se některá pole nebo aliasy nedají použít na jiném místě (ony totiž ještě nebo už neexistují).

Mějme tedy základní kostru dotazu:

SELECT xxx FROM xxx WHERE xxx GROUP BY xxx HAVING xxx ORDER BY xxx

Pořadí vyhodnocení je následující:

FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY

Jestliže třeba uvedete následující dotaz, nebude možné ho vykonat, protože SELECT DISTINCT se vyhodnotí dřív než řazení (zůstanou pouze unikátní částky) a už není možné podle ID řadit, protože takové pole neexistuje.

SELECT DISTINCT Castka FROM Objednavky ORDER BY ID