Available in versions: Dev (3.19) | Latest (3.18) | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11 | 3.10 | 3.9

NVL

Applies to ✅ Open Source Edition   ✅ Express Edition   ✅ Professional Edition   ✅ Enterprise Edition

The NVL() function (or also the ISNULL() or IFNULL() functions) produces the first argument if it is NOT NULL, otherwise the second argument. It is a special case of the COALESCE function, which takes any number of arguments.

SELECT nvl(null, 1);
create.select(nvl(null, 1)).fetch();

The result being

+-----+
| nvl |
+-----+
|   1 |
+-----+

Dialect support

This example using jOOQ:

nvl(null, 1)

Translates to the following dialect specific expressions:

-- ACCESS
iif(NULL IS NULL, 1, NULL)

-- ASE, AURORA_POSTGRES, COCKROACHDB, DUCKDB, EXASOL, FIREBIRD, HANA, POSTGRES, REDSHIFT, SNOWFLAKE, SQLDATAWAREHOUSE, 
-- SQLSERVER, SYBASE, TERADATA, TRINO, VERTICA, YUGABYTEDB
coalesce(
  NULL,
  1
)

-- AURORA_MYSQL, BIGQUERY, MARIADB, MEMSQL, MYSQL, SQLITE
ifnull(
  NULL,
  1
)

-- DB2, H2, HSQLDB, INFORMIX, ORACLE
nvl(
  NULL,
  1
)

-- DERBY
coalesce(
  ?,
  1
)

(These are currently generated with jOOQ 3.19, see #10141), or translate your own on our website

References to this page

Feedback

Do you have any feedback about this page? We'd love to hear it!

The jOOQ Logo