Select-statements mit IF-Kontrollstrukturen vs. CASE

Hi,
kann mir jemand sagen warum Select-statements mit if-kontrollstrukturen nicht funktionieren aber case anweisungen schon?? Oder bin ich einfach nur zu blöd das zu schreiben.
Beispiel was ich will aber NICHT funktioniert:

select id, IF(messwert <= 0.005, CAST("<0.01" as text), CAST(messwert) as text)
from messwerte

Was funktioniert ist aber:

select id,
	CASE WHEN messwert <= 0.005 THEN '<0.01' ELSE CAST(messwert as text) END 
       as messwert
from meswerte

Ich find das mit IF viel schöner u. versteh überhaupt nicht warum das nicht funktioniert :frowning: (hab mir gestern die nacht um die ohren geschlagen um das mit IF hinzubekommen). Denn rein von der logik find ich es komplexer switch-case kontrollstrukturen zu implementieren als IF-Strukturen. Deswegen bin ich irgendwie total fassungslos und hoffe auf ne logische erklärung, damit man sich das merken kann;) :confused:

Weil es in (Standard) SQL kein IFgibt.

Im übrigen ist: "<0.01"kein korrekter Wert in SQL. Zeichenketten (Strings) werden in einfache Anführungszeichen gesetzt. ‘<0.01’.
Doppelte Anführungszeichen werden für Bezeichner (Identifier) verwendet

In welchem SQL-Lehrbuch hast Du die Syntax so gesehen?