funciona - postgresql español
¿Cómo obtener min/max de dos enteros en Postgres/SQL? (2)
¿Cómo puedo encontrar el máximo (o mínimo) de dos enteros en Postgres / SQL? Uno de los enteros no es un valor de columna.
Daré un ejemplo de escenario:
Me gustaría restar un entero de una columna (en todas las filas), pero el resultado no debe ser menor a cero. Entonces, para empezar, tengo:
UPDATE my_table
SET my_column = my_column - 10;
Pero esto puede hacer que algunos de los valores sean negativos. Lo que me gustaría (en pseudo código) es:
UPDATE my_table
SET my_column = MAXIMUM(my_column - 10, 0);
Desea el case
sql en línea:
set my_column = case when my_column - 10 > 0 then my_column - 10 else 0 end
max()
es una función agregada y obtiene el máximo de una fila de un conjunto de resultados.
Editar: Vaya, no sabía nada sobre el greatest
y el least
en postgres. Usa eso en cambio.
Echa un vistazo a LO MÁS GRANDE y MENOR .
UPDATE my_table
SET my_column = GREATEST(my_column - 10, 0);