2012-03-27 16 views

risposta

10
SELECT (COALESCE(ONE, 0) + COALESCE(TWO, 0)) FROM (TABLE) 

COALESCE restituisce il primo valore non nullo trovato nei parametri da sinistra a destra. Così, quando il primo campo è nullo, ci vorrà il 0.

In questo modo, si tradurrà in X210 + 0 = 10

1

c'è già una buona risposta, ma penso che vale la pena menzionare l'antonpug (in caso non lo sa) che il motivo per cui ciò sta accadendo è che NULL non è un valore che può essere comparato o sommato.

NULL non è 0 o '' (stringa vuota), quindi ogni operazione di NULL risultato nullo (10 + NULL = NULL), anche (NULL = NULL) restituisce false

+1

Sono consapevole. Grazie! – antonpug

+1

In Oracle, la stringa vuota è NULL. Questo differisce dallo standard e da altri RDBM. In Oracle, selezionare 'true' da dual dove '' is null 'restituisce true e' select 'true' da dual dove '' = '' 'non restituisce una riga. Per questo motivo, l'operatore di concatenazione '||' restituirà null solo se entrambi i lati sono nulli. 'seleziona null || 'Hello World!' da dual' dà la stringa "Hello World!". –

Problemi correlati