POWER (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (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)