POWER (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库
返回指定表达式的指定幂的值。
语法
POWER ( float_expression , y )
参数
float_expression
float 类型或能隐式转换为 float 类型的表达式 。
y
要将 float_expression 提升到的幂。 y 可以是精确或近似数值数据类型类别(bit 数据类型除外)的表达式。
返回类型
返回类型取决于 float_expression 的输入类型:
输入类型 | 返回类型 |
---|---|
float、real | float |
decimal(p, s) | decimal(38, s) |
int、smallint、tinyint | int |
bigint | bigint |
money、 smallmoney | money |
bit、char、nchar、varchar、nvarchar | float |
如果结果与返回类型不匹配,将发生算术溢出错误。
示例
A. 使用 POWER 返回一个数字的立方
下列示例演示一个数字的 3 次幂(数的立方)的运算。
DECLARE @input1 FLOAT;
DECLARE @input2 FLOAT;
SET @input1= 2;
SET @input2 = 2.5;
SELECT POWER(@input1, 3) AS Result1, POWER(@input2, 3) AS Result2;
结果集如下。
Result1 Result2
---------------------- ----------------------
8 15.625
(1 row(s) affected)
B. 使用 POWER 显示数据类型转换的结果
以下示例演示 float_expression 如何保留会返回意外结果的数据类型。
SELECT
POWER(CAST(2.0 AS FLOAT), -100.0) AS FloatResult,
POWER(2, -100.0) AS IntegerResult,
POWER(CAST(2.0 AS INT), -100.0) AS IntegerResult,
POWER(2.0, -100.0) AS Decimal1Result,
POWER(2.00, -100.0) AS Decimal2Result,
POWER(CAST(2.0 AS DECIMAL(5,2)), -100.0) AS Decimal2Result;
GO
结果集如下。
FloatResult IntegerResult IntegerResult Decimal1Result Decimal2Result Decimal2Result
---------------------- ------------- ------------- -------------- -------------- --------------
7.88860905221012E-31 0 0 0.0 0.00 0.00
°C 使用 POWER
以下示例返回 POWER
的 2
结果。
DECLARE @value INT, @counter INT;
SET @value = 2;
SET @counter = 1;
WHILE @counter < 5
BEGIN
SELECT POWER(@value, @counter)
SET NOCOUNT ON
SET @counter = @counter + 1
SET NOCOUNT OFF
END;
GO
结果集如下。
-----------
2
(1 row(s) affected)
-----------
4
(1 row(s) affected)
-----------
8
(1 row(s) affected)
-----------
16
(1 row(s) affected)
示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
D:使用 POWER 返回一个数字的立方
下例演示将返回 2.0
的 3 次幂的 POWER
结果。
SELECT POWER(2.0, 3);
结果集如下。
------------
8.0
另请参阅
decimal 和 numeric (Transact-SQL)
float 和 real (Transact-SQL)
int、bigint、smallint 和 tinyint (Transact-SQL)
数学函数 (Transact-SQL)
money 和 smallmoney (Transact-SQL)