programing

null이 아닌 최대 열

powerit 2023. 8. 6. 10:28
반응형

null이 아닌 최대 열

두 개의 DATTIME 열 중 가장 큰 값을 기준으로 공식을 사용하여 행을 업데이트해야 합니다.저는 보통 다음과 같이 합니다.

GREATEST(date_one, date_two)

그러나 두 열 모두 NULL로 허용됩니다. 다른 열이 NULL일 때도 가장 큰 날짜가 필요합니다(물론 둘 다 NULL일 때는 NULL로 예상합니다).GREATEST()열 중 하나가 NULL이면 NULL을 반환합니다.

이것은 효과가 있는 것 같습니다.

GREATEST(COALESCE(date_one, date_two), COALESCE(date_two, date_one))

하지만 궁금해요...제가 좀 더 간단한 방법을 놓쳤나요?

COALESCE(GREATEST(date_one, date_two), date_one, date_two)

여러 열에 대한 솔루션은 다음과 같습니다.

SELECT NULLIF(
  GREATEST(
    NVL(NULL,     to_date('01011980','ddmmyyyy')), --COLUMN 1
    NVL(sysdate,  to_date('01011980','ddmmyyyy')), --COLUMN 2
    NVL(NULL,     to_date('01011980','ddmmyyyy')), --COLUMN 3
    NVL(sysdate-1,to_date('01011980','ddmmyyyy'))  --COLUMN 4
  ),to_date('01011980','ddmmyyyy')
) as greatest_date
FROM DUAL;

언급URL : https://stackoverflow.com/questions/2684090/greatest-not-null-column

반응형