Oracle SQL Nullpluszahl gibt einen Nullwert

7

Ich mache eine Berechnung mit (+ Operationen), aber ich sah, dass ich ein Null-Ergebnis habe, ich überprüfte die Datenbank und ich fand etwas wie number+number+nul+number+null+number...=null . und das ist ein Problem für mich.

gibt es einen Vorschlag für mein Problem? Wie löst man diesen König für Probleme? Danke

    
archavin 07.06.2013, 16:15
quelle

4 Antworten

12

Ich bevorzuge ANSI-Standardkonstrukte:

%Vor%

NVL() ist spezifisch für Oracle. COALESCE() ist ANSI-Standard und in fast allen Datenbanken verfügbar.

    
Gordon Linoff 07.06.2013, 16:22
quelle
4

Sie müssen diese Werte auf 0 setzen, wenn sie null sind. Sie können nvl

%Vor%

wo das erste Argument von NVL Ihre Spalte wäre.

    
mrcaramori 07.06.2013 16:18
quelle
3

Sie können etwas wie NVL verwenden, um eine Null in einen Wert wie 0 zu werfen.

%Vor%

Gibt null zurück.

%Vor%

Gibt 5 zurück.

    
Mike Christensen 07.06.2013 16:19
quelle
1

Nur realisiert, keine der Antworten erwähnt, was COALESCE () oder NVL () ist, würde ich gerne klären, da es verwirrend sein kann (ich dachte zunächst, dass es sich um Konjunktionsfunktionen handelt).

Angenommen, Sie möchten die vollständige Adresse der Orte in Ihrer Tabelle auswählen, haben Sie zwei Felder - AddressLine1 und AddressLine2. Angenommen, "AddressLine1" ist immer NOT NULL und "AddressLine2" kann NULL sein. Dann möchtest du vielleicht so etwas schreiben:

%Vor%

Also, dass für die Einträge, dass AddressLine2 = NULL ist, dies keinen NULL dafür zurückgeben würde.

P.S. Ich frage mich, warum die Plus-Operation in SQL so entworfen wird, sieht wirklich nicht intuitiv aus.

    
Zinan Xing 05.12.2013 18:32
quelle

Tags und Links