sql >> Database >  >> RDS >> Oracle

POWER() Functie in Oracle

In Oracle, de POWER() functie retourneert zijn eerste argument verheven tot de macht van zijn tweede argument.

Syntaxis

De syntaxis gaat als volgt:

POWER(n2, n1)

Elk argument kan elk numeriek gegevenstype zijn of elk niet-numeriek gegevenstype dat impliciet kan worden geconverteerd naar een numeriek gegevenstype.

Beide argumenten kunnen echter elk willekeurig getal zijn, als n2 negatief is, dan n1 moet een geheel getal zijn.

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT POWER(8, 2) 
FROM DUAL;

Resultaat:

   POWER(8,2) 
_____________ 
           64 

En hier gebruikt het een fractioneel deel in het tweede argument:

SELECT POWER(8, 2.5) 
FROM DUAL;

Resultaat:

                              POWER(8,2.5) 
__________________________________________ 
   181.01933598375616624661615669884135406 

Het gebruik van een fractioneel deel is echter alleen mogelijk als het eerste argument positief is.

Negatieve waarden

Zoals gezegd, als het eerste argument negatief is, dan moet het tweede argument een geheel getal zijn:

SELECT POWER(-8, 2) 
FROM DUAL;

Resultaat:

   POWER(-8,2) 
______________ 
            64 

Dit is wat er gebeurt als het tweede getal geen geheel getal is:

SELECT POWER(-8, 2.5) 
FROM DUAL;

Resultaat:

Error starting at line : 1 in command -
SELECT POWER(-8, 2.5) 
FROM DUAL
Error report -
ORA-01428: argument '-8' is out of range

Niet-numerieke argumenten

De argumenten kunnen elk numeriek gegevenstype zijn of elk niet-numeriek gegevenstype dat impliciet kan worden geconverteerd naar een numeriek gegevenstype.

Hier is een voorbeeld van wat er gebeurt als de argumenten niet aan die criteria voldoen:

SELECT POWER('Gosh', 'Dang')
FROM DUAL;

Resultaat:

Error starting at line : 1 in command -
SELECT POWER('Gosh', 'Dang')
FROM DUAL
Error report -
ORA-01722: invalid number

Nullargumenten

POWER() retourneert null als een argument null is :

SET NULL 'null';

SELECT 
    POWER(null, 3),
    POWER(8, null),
    POWER(null, null)
FROM DUAL;

Resultaat:

   POWER(NULL,3)    POWER(8,NULL)    POWER(NULL,NULL) 
________________ ________________ ___________________ 
            null             null                null 

Standaard retourneren SQLcl en SQL*Plus een spatie wanneer een null-waarde optreedt 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.

Ontbrekende argumenten

POWER() . aanroepen zonder argumenten resulteert in een fout:

SELECT POWER()
FROM DUAL;

Resultaat:

Error starting at line : 1 in command -
SELECT POWER()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

En hetzelfde geldt als je het met te veel argumenten aanroept:

SELECT POWER(10, 2, 3)
FROM DUAL;

Resultaat:

Error starting at line : 1 in command -
SELECT POWER(10, 2, 3)
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

  1. MySQL in de cloud - voor- en nadelen van Amazon RDS

  2. Hoe een opgeslagen procedure in MySQL te maken

  3. MySQL relationele databases gebruiken op Debian 6 (Squeeze)

  4. Haal de dichtstbijzijnde lengte- en breedtegraad uit de MSSQL-databasetabel?