Trong Oracle, POWER() hàm trả về đối số đầu tiên của nó được nâng lên thành lũy thừa của đối số thứ hai.
Cú pháp
Cú pháp như sau:
POWER(n2, n1) Mỗi đối số có thể là bất kỳ kiểu dữ liệu số nào hoặc bất kỳ kiểu dữ liệu phi số nào có thể được chuyển đổi hoàn toàn thành kiểu dữ liệu số.
Tuy nhiên, cả hai đối số có thể là bất kỳ số nào, nếu n2 là âm, sau đó là n1 phải là một số nguyên.
Ví dụ
Dưới đây là một ví dụ để chứng minh:
SELECT POWER(8, 2)
FROM DUAL; Kết quả:
POWER(8,2)
_____________
64 Và ở đây nó đang sử dụng một phần phân số trong đối số thứ hai:
SELECT POWER(8, 2.5)
FROM DUAL; Kết quả:
POWER(8,2.5) __________________________________________ 181.01933598375616624661615669884135406
Tuy nhiên, chỉ có thể sử dụng phần phân số khi đối số đầu tiên là số dương.
Giá trị phủ định
Như đã đề cập, nếu đối số đầu tiên là số âm, thì đối số thứ hai phải là một số nguyên:
SELECT POWER(-8, 2)
FROM DUAL; Kết quả:
POWER(-8,2)
______________
64 Đây là những gì sẽ xảy ra khi số thứ hai không phải là số nguyên:
SELECT POWER(-8, 2.5)
FROM DUAL; Kết quả:
Error starting at line : 1 in command - SELECT POWER(-8, 2.5) FROM DUAL Error report - ORA-01428: argument '-8' is out of range
Đối số không phải dạng số
Các đối số có thể là bất kỳ kiểu dữ liệu số nào hoặc bất kỳ kiểu dữ liệu phi số nào có thể được chuyển đổi hoàn toàn thành kiểu dữ liệu số.
Dưới đây là một ví dụ về điều gì sẽ xảy ra khi các đối số không đáp ứng tiêu chí đó:
SELECT POWER('Gosh', 'Dang')
FROM DUAL; Kết quả:
Error starting at line : 1 in command -
SELECT POWER('Gosh', 'Dang')
FROM DUAL
Error report -
ORA-01722: invalid number Đối số rỗng
POWER() trả về null nếu bất kỳ đối số nào là null :
SET NULL 'null';
SELECT
POWER(null, 3),
POWER(8, null),
POWER(null, null)
FROM DUAL; Kết quả:
POWER(NULL,3) POWER(8,NULL) POWER(NULL,NULL)
________________ ________________ ___________________
null null null
Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào giá trị null xảy ra do một SELECT trong SQL tuyên bố.
Tuy nhiên, bạn có thể sử dụng SET NULL để chỉ định một chuỗi khác được trả về. Ở đây tôi đã chỉ định rằng chuỗi null nên được trả lại.
Thiếu đối số
Đang gọi POWER() mà không có bất kỳ đối số nào dẫn đến lỗi:
SELECT POWER()
FROM DUAL; Kết quả:
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:
Và điều tương tự cũng áp dụng khi gọi nó với quá nhiều đối số:
SELECT POWER(10, 2, 3)
FROM DUAL; Kết quả:
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: