sql >> Databasteknik >  >> RDS >> Oracle

NVL2() Funktion i Oracle

I Oracle Database, NVL2() funktion tillåter oss att ersätta nollvärden med ett annat värde.

Det liknar NVL() funktion, förutom att den accepterar tre argument istället för två. Detta tillåter oss att ange ett annat värde att returnera i händelse av att det första argumentet inte är null.

Syntax

Syntaxen ser ut så här:

NVL2(expr1, expr2, expr3)

Om expr1 är inte null, sedan NVL2 returnerar expr2 . Om expr1 är null, sedan NVL2 returnerar expr3 .

Exempel

Här är ett exempel att visa:

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

Resultat:

3

Det första argumentet var null och det tredje argumentet returnerades.

Och här är vad som händer när det första argumentet inte är null:

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

Resultat:

2

När ersättningsvärdena är noll

Om det andra eller tredje argumentet är null, kan du få ett null-resultat.

Exempel:

SET NULL '(null)';
SELECT 
    NVL2(1, null, 3) AS "r1",
    NVL2(null, 2, null) AS "r2"
FROM DUAL;

Resultat:

       r1        r2 
_________ _________ 
   (null)    (null)

Angående den första raden SET NULL '(null)'; , lade jag till den här raden så att min SQLcl-session returnerar det värdet när resultatet är null.

Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när null uppstår som ett resultat av en SQL SELECT påstående.

Du kan dock använda SET NULL för att ange en annan sträng som ska returneras (som jag har gjort här).

Ogiltigt antal argument

Att anropa funktionen utan att skicka några argument resulterar i ett fel:

SELECT NVL2()
FROM DUAL;

Resultat:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Och att skicka för många argument orsakar också ett fel:

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

Resultat:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  1. Byt från SQLite till PostgreSQL i ett nytt Rails-projekt

  2. hur man hittar index på en tabell i oracle

  3. SQL Server 2017 steg för steg installation -1

  4. Skapa en främmande nyckel i SQLite