POWER (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス

指定されたべき乗の指定された式の値を返します。

Transact-SQL 構文表記規則

構文

POWER ( float_expression , y )  

引数

float_expression
float 型、または暗黙的に float 型に変換できるを指定します。

y
float_expression の乗数を指定します。 y を除く、真数または概数数値の正確なデータ型に分類される式を指定できます、 ビット データ型。

戻り値の型

戻り値の型は、float_expression の入力型によって異なります。

入力の種類 の戻り値の型 :
floatreal float
decimal(p, s) decimal(38, s)
intsmallinttinyint int
bigint bigint
moneysmallmoney money
bitcharncharvarcharnvarchar float

結果が戻り値の型に一致しない合、算術オーバーフロー エラーが発生します。

A. POWER を使用して数値の 3 乗を返す

次の例は、数値を 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 を使用して数値の 3 乗を返す

次の例は、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)