What is the Oracle equivalent of SQL Server's IsNull() function?

288,921

Solution 1

coalesce is supported in both Oracle and SQL Server and serves essentially the same function as nvl and isnull. (There are some important differences, coalesce can take an arbitrary number of arguments, and returns the first non-null one. The return type for isnull matches the type of the first argument, that is not true for coalesce, at least on SQL Server.)

Solution 2

Instead of ISNULL(), use NVL().

T-SQL:

SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable

PL/SQL:

SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable

Solution 3

Also use NVL2 as below if you want to return other value from the field_to_check:

NVL2( field_to_check, value_if_NOT_null, value_if_null )

Usage: ORACLE/PLSQL: NVL2 FUNCTION

Solution 4

You can use the condition if x is not null then.... It's not a function. There's also the NVL() function, a good example of usage here: NVL function ref.

Share:
288,921
Goran
Author by

Goran

Updated on August 01, 2020

Comments

  • Goran
    Goran almost 4 years

    In SQL Server we can type IsNull() to determine if a field is null. Is there an equivalent function in PL/SQL?

  • OMG Ponies
    OMG Ponies over 13 years
    +1: COALESCE is ANSI, supported by Postgres, MySQL... The only caveat is that it doesn't necessarily perform as fast as native syntax.
  • Jeffrey Kemp
    Jeffrey Kemp over 13 years
    +1 for COALESCE, which has one important benefit over NVL: it does shortcut evaluation, whereas NVL always evaluates both parameters. Compare COALESCE(1,my_expensive_function) with NVL(1,my_expensive_function).
  • SherlockSpreadsheets
    SherlockSpreadsheets about 5 years
    This COALESE() function is great and you can read about it on MSDOC> COALESCE-- this same syntax works on Oracle. If your data has empty strings instead of NULLS you might need something like this: COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField".