POWER(Transact-SQL)

적용 대상: 예SQL Server(지원되는 모든 버전) 예Azure SQL Database 예Azure SQL Managed Instance 예Azure Synapse Analytics 예병렬 데이터 웨어하우스

지정된 식을 거듭제곱한 값을 반환합니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

POWER ( float_expression , y )  

참고

SQL Server 2014 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

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)