Risposte:
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.)
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).
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".
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
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
Puoi usare la condizione if x is not null then.... Non è una funzione. C'è anche la NVL()funzione, un buon esempio di utilizzo qui: NVL function ref .
COALESCEè ANSI, supportato da Postgres, MySQL ... L'unico avvertimento è che non è necessariamente veloce come la sintassi nativa.