Udostępnij za pomocą


SIŁA (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 dane znaków przekonwertowane z danych numerycznych. Dane znaków są prawidłowo wyłożone, z określoną długością i precyzją dziesiętną.

Transact-SQL konwencje składni

Składnia

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

Arguments

float_expression
Jest wyrażeniem przybliżonego numerycznego (pływającego) typu danych z przecinkiem przecinkowym.

length
To całkowita długość. Obejmuje to przekronik dziesiętny, znak, cyfry i spacji. Wartość domyślna to 10.

decimal
To liczba miejsc po prawej stronie od przecinka dziesiętnego. dziesiętny musi być mniejszy lub równy 16. Jeśli liczba dziesiętna jest większa niż 16, wynik jest skracany do szesnastu miejsc na prawo od przecinka dziesiętnego.

Typy zwracane

varchar

Uwagi

Jeśli jest podany, wartości długości i parametrów dziesiętnych względem STR powinny być dodatnie. Liczba ta jest domyślnie zaokrąglana do liczby całkowitej lub jeśli parametr dziesiętny wynosi 0. Określona długość powinna być większa lub równa części liczby przed przecinkiem dziesiętnym plus znak liczby (jeśli taki istnieje). Krótki float_expression jest prostoprawnie wyprostowany w określonej długości, a długi float_expression jest obcięty do określonej liczby miejsc dziesiętnych. Na przykład STR(12, 10) daje wynik 12. Jest to prawidłowo usprawiedliwione w zbiorze wyników. Jednak STR(1223, 2) skraca zbiór wyników do **. Funkcje ciągów znaków mogą być zagnieżdżone.

Uwaga / Notatka

Aby przekonwertować na dane Unicode, użyj STR wewnątrz funkcji konwersji CONVERT lub CAST .

Przykłady

Poniższy przykład przekształca wyrażenie składające się z pięciu cyfr i przecinka dziesiętnego na ciąg znaków o sześciu pozycjach. Ułamekowa część liczby jest zaokrąglana do jednego miejsca po przecinku.

SELECT STR(123.45, 6, 1);  
GO  

Oto zestaw wyników.

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

Gdy wyrażenie przekracza określoną długość, ciąg zwraca ** dla określonej długości.

SELECT STR(123.45, 2, 2);  
GO  

Oto zestaw wyników.

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

Nawet gdy dane numeryczne są zagnieżdżone w , STRefektem są dane znakowe o określonym formacie.

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

Oto zestaw wyników.

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

Zobacz też

RZUTOWANIE i konwertowanie (Transact-SQL)
FORMAT (Transact-SQL)
funkcje ciągów (Transact-SQL)