sql >> Database >  >> RDS >> Oracle

NULLIF() Functie in Oracle

In Oracle Database, de NULLIF() functie vergelijkt twee uitdrukkingen en retourneert null als beide uitdrukkingen gelijk zijn. Als ze niet gelijk zijn, retourneert de functie de eerste uitdrukking.

Syntaxis

De syntaxis gaat als volgt:

NULLIF(expr1, expr2)

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT NULLIF(5, 7)
FROM DUAL;

Resultaat:

5

In dit geval waren de argumenten niet gelijk, en dus retourneerde de functie het eerste argument.

Dit is wat er gebeurt als beide argumenten gelijk zijn:

SET NULL 'null';
SELECT NULLIF(7, 7)
FROM DUAL;

Resultaat:

null

We kunnen zien dat NULLIF() retourneert null wanneer beide argumenten gelijk zijn

Met betrekking tot de eerste regel SET NULL 'null'; , ik heb dat toegevoegd zodat mijn SQLcl-sessie null returns retourneert wanneer het resultaat nul is.

Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null treedt op als resultaat van een SQL SELECT uitspraak.

U kunt echter SET NULL . gebruiken om een ​​andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.

Vergeleken met CASE

De NULLIF() functie is het equivalent van de volgende CASE uitdrukking:

CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END

Ongeldig aantal argumenten

Het aanroepen van de functie zonder het doorgeven van argumenten resulteert in een fout:

SELECT NULLIF()
FROM DUAL;

Resultaat:

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

En het doorgeven van te veel argumenten veroorzaakt ook een fout:

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

Resultaat:

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

  1. Niet tevredenLinkError in native methode

  2. ScaleGrid DBaaS breidt MySQL-hostingservices uit via AWS Cloud

  3. Eenvoudige parametrering en triviale plannen - deel 3

  4. Tips voor het afstemmen van PostgreSQL-prestaties