STR (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric

Возвращает символьные данные, преобразованные из числовых данных. Символьные данные выровнены по правому краю с заданной длиной и десятичной точностью.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

float_expression
Выражение приблизительного числового (float) типа данных с десятичной запятой.

length
Общая длина. Она включает десятичную запятую, знак, цифры и пробелы. Значение по умолчанию равно 10.

десятичное
Количество знаков справа от десятичной запятой. Значение decimal должно быть меньше или равно 16. Если значение decimal больше 16, то результат усекается до шестнадцати знаков после запятой.

Типы возвращаемых данных

varchar

Замечания

Если указано, то значения параметров length и decimal в функции STR должны быть положительными. Число округляется до целого или по умолчанию, или если десятичный параметр равен 0. Указанная длина должна быть больше или равна части числа до запятой плюс знак числа (если имеется). Короткое выражение float_expression выравнивается справа до указанной длины, а длинное float_expression усекается до заданного количества цифр после запятой. Например, значением выражения STR(12,10) будет 12. Выравнивается в результирующем наборе вправо. Однако STR(1223, 2) усекает результирующий набор до **. Строковые функции могут быть вложенными.

Примечание.

Чтобы преобразовать данные в кодировку Юникод, используйте функцию STR внутри функций преобразования CONVERT или CAST.

Примеры

В следующем примере выражение, состоящее из пяти знаков и десятичной запятой, преобразуется в шестизначную символьную строку. Дробная часть числа округляется до одного десятичного знака.

SELECT STR(123.45, 6, 1);  
GO  

Вот результирующий набор.

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

Когда выражение превышает заданную длину, строка возвращает ** для указанной длины.

SELECT STR(123.45, 2, 2);  
GO  

Вот результирующий набор.

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

Даже когда в STR вложены числовые данные, результатом являются символьные данные с указанным форматом.

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

Вот результирующий набор.

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

См. также

CAST и CONVERT (Transact-SQL)
FORMAT (Transact-SQL)
Строковые функции (Transact-SQL)