C'è qualcosa di simileIn SQL, ci sono min non aggregato/operatori max
select max(val,0)
from table
Io non sto cercando di trovare il valore massimo di tutta la tabella
ci deve essere un più facile modo di questo giusto?
select case when val > 0 then val else 0 end
from table
EDIT: sto usando Microsoft SQL Server
Quale implementazione di SQL? – JNK
In Fortran, MAX (a, b, ...) ha fatto quello che vuoi. In SQL, alcuni dialetti supportano funzioni come 'LARGER' o' SMALLER' o 'LARGEST' o' SMALLEST'. Non esiste una funzione standard per l'attività AFAIK. –
Attenzione al temuto NULL. Avete bisogno di: 'CASE QUANDO val è NULL THEN 0 QUANDO val> 0 THEN val ELSE 0 END' (nel caso in cui 0 è noto non essere nullo), o' CASE WHEN val1 È NULL THEN val2 QUANDO val2 È NULL THEN val1 WHEN val1> val2 THEN val1 ELSE val2 END' per 'MAX (val1, val2)'. –