POWER (Transact-SQL)

返回指定表达式的指定幂的值。

适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。

主题链接图标 Transact-SQL 语法约定

语法

POWER ( float_expression , y )

参数

  • float_expression
    float 类型或能隐式转换为 float 类型的表达式

  • y
    对 float_expression 进行幂运算的幂值。 y 可以是精确数字或近似数字数据类型(bit 数据类型除外)类别的表达式。

返回类型

返回类型与 float_expression 中提交的相同。 例如,如果 decimal(2,0) 提交为 float_expression,则返回的结果为 decimal(2,0)。

示例

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

以下示例返回 2 的 POWER 结果。

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)

请参阅

参考

decimal 和 numeric (Transact-SQL)

float 和 real (Transact-SQL)

int、bigint、smallint 和 tinyint (Transact-SQL)

数学函数 (Transact-SQL)

money 和 smallmoney (Transact-SQL)