Comment obtenir min / max de deux entiers dans Postgres / SQL?
Comment trouver le maximum (ou le minimum) de deux entiers dans Postgres / SQL? L'un des entiers n'est pas une valeur de colonne.
Je vais donner un exemple de scénario:
Je voudrais soustraire un entier d'une colonne (dans toutes les lignes), mais le résultat ne doit pas être inférieur à zéro. Donc, pour commencer, j'ai:
UPDATE my_table
SET my_column = my_column - 10;
Mais cela peut rendre certaines valeurs négatives. Ce que je voudrais (en pseudo code) est:
UPDATE my_table
SET my_column = MAXIMUM(my_column - 10, 0);
103
demandé sur
HRJ
2010-05-29 23:38:21
2 réponses
Jetez un oeil à le plus grand et le moins .
UPDATE my_table
SET my_column = GREATEST(my_column - 10, 0);
202
répondu
Mark Byers
2015-01-08 15:35:16
Vous voulez le sql en ligne case
:
set my_column = case when my_column - 10 > 0 then my_column - 10 else 0 end
max()
est une fonction d'agrégation et obtient le maximum d'une ligne d'un résultat.
Edit: Oups, ne connaissait pas greatest
et least
dans postgres. Utiliser à la place.
12
répondu
Donnie
2016-04-21 15:11:34