Qual è l'equivalente Oracle della funzione IsNull () di SQL Server?


Risposte:


131

coalesceè supportato sia in Oracle che in SQL Server e svolge essenzialmente la stessa funzione di nvle isnull. (Esistono alcune differenze importanti, coalescepuò accettare un numero arbitrario di argomenti e restituisce il primo non nullo. Il tipo restituito per isnullcorrisponde al tipo del primo argomento, che non è vero per coalesce, almeno su SQL Server.)


9
+1: COALESCEè ANSI, supportato da Postgres, MySQL ... L'unico avvertimento è che non è necessariamente veloce come la sintassi nativa.
OMG Ponies

17
+1 per COALESCE, che ha un vantaggio importante NVL: esegue la valutazione delle scorciatoie, mentre NVLvaluta sempre entrambi i parametri. Confronta COALESCE(1,my_expensive_function)con NVL(1,my_expensive_function).
Jeffrey Kemp

Questa COALESE()funzione è eccezionale e puoi leggerla su MSDOC> COALESCE : la stessa sintassi funziona su Oracle. Se i dati non ha stringhe vuote invece di NULLS potrebbe essere necessario qualcosa di simile a questo: COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField".
Sherlock

108

Invece di ISNULL(), usa NVL().

T-SQL:

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

PL / SQL:

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

2
Risponde esplicitamente alla domanda.
Gary Huckabone

31

Utilizzare anche NVL2come di seguito se si desidera restituire un altro valore da field_to_check:

NVL2( field_to_check, value_if_NOT_null, value_if_null )

Utilizzo: ORACLE / PLSQL: NVL2 FUNCTION


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.