sql >> Database >  >> RDS >> Oracle

Oracle ISNULL() Equivalent

De meeste grote DBMS'en bieden ons een functie voor het vervangen van null-waarden door een andere waarde.

Maar de naam van de functie verschilt meestal tussen DBMS'en. SQL Server heeft bijvoorbeeld een ISNULL() functie, terwijl andere (zoals MySQL, MariaDB en SQLite) een IFNULL() hebben functie om hetzelfde te doen.

Om de zaken echter te verwarren, hebben MySQL en MariaDB elk een ISNULL() functie die anders werkt dan de gelijknamige functie van SQL Server (de implementatie van MySQL en MariaDB accepteert slechts één argument en retourneert 1 als het null is en 0 als dat niet het geval is).

Hoe dan ook, in het geval van Oracle Database kunnen we de NVL() . gebruiken functie om null-waarden te vervangen door een andere waarde.

Eigenlijk heeft Oracle Database ook een NVL2() functie waarmee we een andere waarde kunnen opgeven die kan worden gebruikt in het geval dat het eerste argument niet null is .

Als we gewoon willen testen of een waarde null . is of niet, we kunnen de IS NULL . gebruiken voorwaarde (of de IS NOT NULL voor de tegenovergestelde test).

De NVL() Functie

Hier is een voorbeeld dat laat zien hoe de NVL() functie werkt:

SELECT NVL(null, 'Run')
FROM DUAL;

Resultaat:

Run

In dat geval was het eerste argument null en dus werd het tweede argument geretourneerd.

Dit is wat er gebeurt als het eerste argument niet null is :

SELECT NVL('Walk', 'Run')
FROM DUAL;

Resultaat:

Walk

Het eerste argument wordt geretourneerd.

De NVL2() Functie

Zoals vermeld, biedt Oracle Database ons ook de NVL2() functie. Met deze functie kunnen we een andere waarde opgeven die kan worden gebruikt in het geval dat het eerste argument niet null is .

Hier is een voorbeeld van hoe het werkt:

SELECT NVL2(null, 2, 3)
FROM DUAL;

Resultaat:

3

Het eerste argument was null en dus werd het derde argument geretourneerd.

Dit is wat er gebeurt als het eerste argument niet null is :

SELECT NVL2(1, 2, 3)
FROM DUAL;

Resultaat:

2

Het tweede argument wordt geretourneerd.

De IS NULL en IS NOT NULL Voorwaarden

Als we gewoon willen weten of een waarde al dan niet null . is , kunnen we de IS NULL . gebruiken vergelijkende voorwaarde. We kunnen ook IS NOT NULL . gebruiken om te controleren of het niet null . is .

Stel dat we de volgende tabel hebben:

SELECT * FROM Autoparts
WHERE Price IS NULL;

Resultaat:

ID OE# PRIJS MODEL
2 62150B3278 CAMRY
1 62150A3278 168 HILUX

In dit geval is de PRICE kolom bevat een null-waarde voor de eerste rij, maar niet voor de tweede rij.

Hier is een voorbeeld van het gebruik van IS NULL tegen die tafel:

SELECT * FROM Autoparts
WHERE Price IS NULL;

Resultaat:

ID OE# PRIJS MODEL
2 62150B3278 CAMRY

Alleen de rij met de nulprijs wordt geretourneerd.

Dit is wat er gebeurt als we IS NOT NULL gebruiken :

SELECT * FROM Autoparts
WHERE Price IS NOT NULL;

Resultaat:

ID OE# PRIJS MODEL
1 62150A3278 168 HILUX

De andere rij wordt geretourneerd.


  1. java.sql.SQLException:geen geschikte driver gevonden voor jdbc:microsoft:sqlserver

  2. Native Library sqljdbc_auth.dll al geladen in een andere classloader

  3. Hoe een opgeslagen procedure aanroepen in een orakelpakket met Entity Framework?

  4. selecteer de TOP N rijen uit een tabel