decode
funktionsresultat har datatypen för den tredje parametern. I det första fallet eftersom ingen datatyp är specificerad för NULL
, används standard VARCHAR2. I det andra fallet efterfrågas ett DATUM uttryckligen och resultatet är därför ett datum.
Med andra ord, den första frågan är densamma som:
SELECT DECODE(SYSDATE, SYSDATE + 1, to_char(NULL), to_char(SYSDATE)) FROM DUAL;
Utdata från denna fråga kommer att formateras enligt din NLS_DATE_FORMAT
sessionsparameter, medan den andra frågan returnerar ett datum som kommer att visas enligt dina klientinställningar.