sql >> Database teknologi >  >> RDS >> Oracle

POWER() Funktion i Oracle

I Oracle er POWER() funktion returnerer sit første argument hævet til magten af ​​sit andet argument.

Syntaks

Syntaksen ser sådan ud:

POWER(n2, n1)

Hvert argument kan være enhver numerisk datatype eller enhver ikke-numerisk datatype, der implicit kan konverteres til en numerisk datatype.

Begge argumenter kan dog være et hvilket som helst tal, hvis n2 er negativ, derefter n1 skal være et heltal.

Eksempel

Her er et eksempel til demonstration:

SELECT POWER(8, 2) 
FROM DUAL;

Resultat:

   POWER(8,2) 
_____________ 
           64 

Og her bruger den en brøkdel i det andet argument:

SELECT POWER(8, 2.5) 
FROM DUAL;

Resultat:

                              POWER(8,2.5) 
__________________________________________ 
   181.01933598375616624661615669884135406 

Det er dog kun muligt at bruge en brøkdel, når det første argument er positivt.

Negative værdier

Som nævnt, hvis det første argument er negativt, så skal det andet argument være et heltal:

SELECT POWER(-8, 2) 
FROM DUAL;

Resultat:

   POWER(-8,2) 
______________ 
            64 

Her er, hvad der sker, når det andet tal ikke er et heltal:

SELECT POWER(-8, 2.5) 
FROM DUAL;

Resultat:

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

Ikke-numeriske argumenter

Argumenterne kan være enhver numerisk datatype eller enhver ikke-numerisk datatype, der implicit kan konverteres til en numerisk datatype.

Her er et eksempel på, hvad der sker, når argumenterne ikke opfylder disse kriterier:

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

Resultat:

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

Nul-argumenter

POWER() returnerer null hvis et argument er null :

SET NULL 'null';

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

Resultat:

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

Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når der opstår en null-værdi som et resultat af en SQL SELECT udmelding.

Du kan dog bruge SET NULL for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null skal returneres.

Manglende argumenter

Kalder POWER() uden argumenter resulterer i en fejl:

SELECT POWER()
FROM DUAL;

Resultat:

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:

Og det samme gælder, når man kalder det med for mange argumenter:

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

Resultat:

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. Opsætning af et optimalt miljø for PostgreSQL

  2. Slet fra to tabeller i én forespørgsel

  3. Sådan opretter du pivottabel i MySQL

  4. PL/pgSQL kontrollerer om der findes en række