다음을 통해 공유


POWER(Transact-SQL)

적용 대상: 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의 거듭제곱입니다. ybit 데이터 형식을 제외한 정확한 수치 또는 근사치 데이터 형식 범주의 식일 수 있습니다.

반환 형식

반환 형식은 float_expression의 입력 형식에 따라 달라집니다.

입력 형식 반환 형식
float, real float
10진수(p, s) 10진수(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 및 분석 플랫폼 시스템(PDW)

4. POWER를 사용하여 숫자의 세제곱 반환

다음 예에서는 2.0의 세제곱에 대한 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)