STR (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Returnerar teckendata konverterad från numerisk data. Teckendatan är högerjusterad, med en specificerad längd och decimal precision.

Transact-SQL syntaxkonventioner

Syntax

STR ( float_expression [ , length [ , decimal ] ] )  

Arguments

float_expression
Är ett uttryck av ungefärlig numerisk (flytt) datatyp med decimalpunkt.

length
Är den totala längden. Detta inkluderar decimaltecken, tecken, siffror och mellanrum. Standardvärdet är 10.

decimal
Är antalet platser till höger om decimalpunkten. Decimalen måste vara mindre än eller lika med 16. Om decimalen är mer än 16 så förkortas resultatet till sexton platser till höger om decimalpunkten.

Returtyper

varchar

Anmärkningar

Om de tillhandahålls bör värdena för längd och decimalparametrar till STR vara positiva. Talet avrundas till ett heltal som standard, eller om decimalparametern är 0. Den angivna längden bör vara större än eller lika med den del av talet före decimalpunkten plus talets tecken (om det finns). En kort float_expression är högerjusterad i den angivna längden, och en lång float_expression avkortas till det angivna antalet decimaler. Till exempel ger STR(12, 10) resultatet 12. Detta är högjusterat i resultatmängden. Dock trunkerar STR(1223, 2) resultatmängden till **. Strängfunktioner kan nästlas.

Anmärkning

För att konvertera till Unicode-data, använd STR i en CONVERT- eller CAST-konverteringsfunktion .

Examples

Följande exempel omvandlar ett uttryck som består av fem siffror och en decimalpunkt till en teckensträng med sex positioner. Den bråkdelade delen av talet avrundas till en decimal.

SELECT STR(123.45, 6, 1);  
GO  

Här är resultatet.

------  
 123.5  
  
(1 row(s) affected)  

När uttrycket överskrider den angivna längden returnerar ** strängen för den angivna längden.

SELECT STR(123.45, 2, 2);  
GO  

Här är resultatet.

--  
**  
  
(1 row(s) affected)  

Även när numerisk data är nästlad inom STR, blir resultatet teckendata med det angivna formatet.

SELECT STR (FLOOR (123.45), 8, 3);
GO  

Här är resultatet.

--------  
 123.000  
  
(1 row(s) affected)  

Se även

CAST och CONVERT (Transact-SQL)
FORMAT (Transact-SQL)
Strängfunktioner (Transact-SQL)