[postgresql] Postgres / SQL에서 두 정수의 최소 / 최대를 얻는 방법은 무엇입니까?

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() 집계 함수이며 결과 집합의 최대 행을 가져옵니다.

편집 : 죄송합니다,에 대해 알고하지 않았다 greatestleast포스트 그레스에. 대신 사용하십시오.


답변