Postgres / SQL에서 두 정수의 최대 (또는 최소)를 어떻게 찾습니까? 정수 중 하나가 열 값이 아닙니다.
시나리오의 예를 드리겠습니다.
열 (모든 행)에서 정수를 빼고 싶지만 결과는 0보다 작아서는 안됩니다. 우선, 나는
UPDATE my_table
SET my_column = my_column - 10;
그러나 이것은 일부 값을 음수로 만들 수 있습니다. (의사 코드로) 내가 원하는 것은 다음과 같습니다.
UPDATE my_table
SET my_column = MAXIMUM(my_column - 10, 0);
답변
GREATEST 및 LEAST를 살펴보십시오 .
UPDATE my_table
SET my_column = GREATEST(my_column - 10, 0);
답변
인라인 SQL을 원합니다 case
.
set my_column = case when my_column - 10 > 0 then my_column - 10 else 0 end
max()
집계 함수이며 결과 집합의 최대 행을 가져옵니다.
편집 : 죄송합니다,에 대해 알고하지 않았다 greatest
및 least
포스트 그레스에. 대신 사용하십시오.