sql >> Databasteknik >  >> RDS >> Oracle

POWER() Funktion i Oracle

I Oracle, POWER() funktion returnerar sitt första argument upphöjt till styrkan av sitt andra argument.

Syntax

Syntaxen ser ut så här:

POWER(n2, n1)

Varje argument kan vara vilken numerisk datatyp som helst eller vilken icke-numerisk datatyp som helst som implicit kan konverteras till en numerisk datatyp.

Båda argumenten kan vara valfritt antal, dock om n2 är negativ, sedan n1 måste vara ett heltal.

Exempel

Här är ett exempel att visa:

SELECT POWER(8, 2) 
FROM DUAL;

Resultat:

   POWER(8,2) 
_____________ 
           64 

Och här använder den en bråkdel i det andra argumentet:

SELECT POWER(8, 2.5) 
FROM DUAL;

Resultat:

                              POWER(8,2.5) 
__________________________________________ 
   181.01933598375616624661615669884135406 

Att använda en bråkdel är dock endast möjligt när det första argumentet är positivt.

Negativa värden

Som nämnts, om det första argumentet är negativt, måste det andra argumentet vara ett heltal:

SELECT POWER(-8, 2) 
FROM DUAL;

Resultat:

   POWER(-8,2) 
______________ 
            64 

Så här händer när det andra talet inte är ett 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

Icke-numeriska argument

Argumenten kan vara vilken numerisk datatyp som helst eller vilken icke-numerisk datatyp som helst som implicit kan konverteras till en numerisk datatyp.

Här är ett exempel på vad som händer när argumenten inte uppfyller dessa 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

Nollargument

POWER() returnerar null om något argument är 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 returnerar SQLcl och SQL*Plus ett blanksteg närhelst ett nollvärde inträffar 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. Här specificerade jag att strängen null bör returneras.

Argument saknas

Anropar POWER() utan några argument resulterar i ett fel:

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:

Och samma sak gäller när man kallar det med för många argument:

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. MySQL – Olika metoder för att känna till nuvarande användare

  2. Det finns i detaljerna

  3. Laravel 5.2 - Använd en sträng som en anpassad primärnyckel för Eloquent Table blir 0

  4. Så skapar du ett tomt formulär i Access 2016