Udostępnij za pomocą


POWER (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca wartość określonego wyrażenia do podanej potęgi.

Transact-SQL konwencje składni

Składnia

POWER ( float_expression , y )  

Arguments

float_expression
Jest wyrażeniem typu float lub typu, który można niejawnie przekształcić w float.

y
Jest siłą, do której można podnieść float_expression. y może być wyrażeniem dokładnej kategorii numerycznego lub przybliżonego numerycznego typu danych, z wyjątkiem typu danych bitowego .

Typy zwracane

Typ zwrotu zależy od typu wejścia float_expression:

Typ danych wejściowych Typ zwracany
Float, real float
dziesiętny (p, s) dziesiętny(38, s)
int, smallint, tinyint int
bigint bigint
money, smallmoney pieniędzy
Bit, char, nchar, varchar, nvarchar float

Jeśli wynik nie pasuje do typu zwrotu, występuje błąd przelewu arytmetycznego.

Przykłady

A. Używając POWER do zwrotu sześcianu liczby

Poniższy przykład pokazuje podniesienie liczby do potęgi 3 (sześcianu tej liczby).

DECLARE @input1 FLOAT;  
DECLARE @input2 FLOAT;  
SET @input1= 2;  
SET @input2 = 2.5;  
SELECT POWER(@input1, 3) AS Result1, POWER(@input2, 3) AS Result2;  

Oto zestaw wyników.

Result1                Result2  
---------------------- ----------------------  
8                      15.625  
  
(1 row(s) affected)  

B. Wykorzystanie POWER do prezentacji wyników konwersji typów danych

Poniższy przykład pokazuje, jak float_expression zachowuje typ danych, który może zwracać nieoczekiwane wyniki.

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  

Oto zestaw wyników.

FloatResult            IntegerResult IntegerResult Decimal1Result Decimal2Result Decimal2Result  
---------------------- ------------- ------------- -------------- -------------- --------------  
7.88860905221012E-31   0             0             0.0            0.00           0.00  

C. Wykorzystanie POWER

Poniższy przykład zwraca POWER wyniki dla 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  

Oto zestaw wyników.

-----------   
2             
  
(1 row(s) affected)  
  
-----------   
4             
  
(1 row(s) affected)  
  
-----------   
8             
  
(1 row(s) affected)  
  
-----------   
16            
  
(1 row(s) affected)  

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

D: Używanie POWER do zwrotu sześcianu liczby

Poniższy przykład pokazuje wyniki POWER dla 2.0 do potęgi trzeciej.

SELECT POWER(2.0, 3);  

Oto zestaw wyników.

------------ 
8.0

Zobacz też

dziesiętne i liczbowe (Transact-SQL)
float i real (Transact-SQL)
int, bigint, smallint i tinyint (Transact-SQL)
Funkcje matematyczne (Transact-SQL)
Pieniądze i drobne pieniądze (Transact-SQL)