출발 한 개발자가 작성한 기존 Oracle 쿼리를 분석하려고합니다. 나는 잘 오라클에 정통한 아니에요 그리고 난 (:BV-POS_YEAR
일년에 변수 세트입니다)를 Microfocus COBOL
응용 프로그램에서이 DECODE
기능의 사용에 의해 혼란 조금 해요 :Oracle DECODE versus NVL
SELECT ...., DECODE(DELV_YEAR, NULL, :BV-POS_YEAR, DELV_YEAR), ....
내가하려고 해요 나는 DECODE
또는 NVL
기능에 대해 뭔가 오해
SELECT ...., NVL(DELV_YEAR, :BV-POS_YEAR), ....
암 : 그것은 다른 것 방법을 이해? 개발자는 매우 동일한 select 문에서 다른 곳에서 사용되기 때문에 NVL 기능을 알고 있습니다.
동일합니다. 예전에는 9999와 같은 마법의 연도 번호에 대한 특수 처리라고하면 더 많은 조항이있을 수 있습니까? 또는 문자열에 대한 다른 'nvl'모양이 있습니까? 개발자가 숫자에 대해 작동하지 않는다고 생각할 수도 있습니다. –
당신과 Michal 귀하의 답변에 감사드립니다. 코드는 그리 오래되지 않았습니다. 개발자가 특정 null이 아닌 값을 나중에 잠재적으로 다른 의미를 갖는 것으로 보았을 가능성이 있습니다. 나는 단지 내가'DECODE' 또는'NVL'의 일부를 놓치지 않았는지 확인하기를 원했습니다. – Pete
이 함수는 ANSI 표준 버전이기 때문에'COALESCE()'를 사용하라고 조언합니다. –