decode
funktionsresultat har datatypen for den tredje parameter. I det første tilfælde, da der ikke er angivet nogen datatype for NULL
, bruges standard VARCHAR2. I det andet tilfælde anmodes der eksplicit om en DATO, og resultatet er derfor en dato.
Med andre ord er den første forespørgsel den samme som:
SELECT DECODE(SYSDATE, SYSDATE + 1, to_char(NULL), to_char(SYSDATE)) FROM DUAL;
Outputtet af denne forespørgsel vil blive formateret i henhold til din NLS_DATE_FORMAT
sessionsparameter, mens den anden forespørgsel returnerer en dato, som vil blive vist i henhold til dine klientindstillinger.