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


147

Postgres / SQL에서 두 정수의 최대 (또는 최소)를 어떻게 찾습니까? 정수 중 하나가 열 값이 아닙니다.

시나리오의 예를 드리겠습니다.

열 (모든 행)에서 정수를 빼고 싶지만 결과는 0보다 작아서는 안됩니다. 우선, 나는

UPDATE my_table
SET my_column = my_column - 10;

그러나 이것은 일부 값을 음수로 만들 수 있습니다. (의사 코드로) 내가 원하는 것은 다음과 같습니다.

UPDATE my_table
SET my_column = MAXIMUM(my_column - 10, 0);

이와 관련하여 통합 데이터 집합을 만든 다음 SQL Server에서 적어도 stackoverflow.com/questions/124417/…을 사용할 수 있습니다.
Kzqai

답변:



17

인라인 SQL을 원합니다 case.

set my_column = case when my_column - 10 > 0 then my_column - 10 else 0 end

max() 집계 함수이며 결과 집합의 최대 행을 가져옵니다.

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


10
이 버전은 표준 SQL로 제한된 경우에 유용합니다.
돈 커크비
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.