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: