Функция SQL Server STR

В этом руководстве вы узнаете, как использовать функцию SQL Server STR() для преобразования числового значения в символьное.

Обзор функции SQL Server STR()

Следующее утверждение не работает:

SELECT 'index' + 1;

Вот сообщение об ошибке:

Conversion failed when converting the varchar value 'index' to data type int.

Чтобы это заработало, вам нужно преобразовать число 1 в строку «1» с помощью функции STR():

SELECT 
    'index' + STR(1,1,1) result;

Функция STR() преобразует числовое значение в символьное значение. Ниже показан синтаксис функции STR():

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

В этом синтаксисе:

  • float_expression — числовое выражение, результатом которого является приблизительное число с десятичной точкой.
  • length — общая длина возвращаемой строки. Она включает десятичную точку, знак, цифры и пробелы. По умолчанию длина равна 10, если вы ее пропустите. Если длина равна нулю, функция возвращает NULL.
  • decimal — это количество знаков справа от десятичной точки возвращаемого float_expression. decimal должен быть меньше или равен 16. Если он больше 16, то функция усекает результат до шестнадцати знаков справа от десятичной точки.

Примеры функций SQL Server STR()

В этом примере функция STR() используется для преобразования числа, состоящего из шести цифр и десятичной точки, в шестизначную строку символов с двумя десятичными знаками:

SELECT 
    STR(123.456, 6, 2) result

Вот что получилось:

result
------
123.46
(1 row affected)

Если длина числа превышает указанную длину, функция STR() возвращает «**», как показано в следующем примере:

SELECT STR(987.65,2,2) result;

Ниже показан результат:

result
------
**
(1 row affected)

Еще один пример недостаточной длины:

SELECT STR(987.65,1) result;

Вот что получилось:

result
------
*
(1 row affected)

В этом руководстве вы узнали, как использовать функцию SQL Server STR() для преобразования числового значения в символьное.

Мирослав С.

Автор статей, ИБ-специалист