Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как работи функцията STR() в SQL Server (T-SQL)

В SQL Server, T-SQL STR() функцията връща символни данни, преобразувани от числови данни. Връщаната стойност има тип на връщане varchar .

Вие предоставяте числовите данни като аргумент при извикване на функцията. След това функцията го преобразува в символни данни. Има и два незадължителни аргумента, които можете да използвате, за да посочите дължината и броя на местата вдясно от десетичната запетая.

Синтаксис

Синтаксисът е така:

STR ( float_expression [ , дължина [ , десетична ] ] )

Където float_expression е израз на приблизителен числов (float ) тип данни с десетична запетая.

дължина е незадължителен аргумент, който можете да използвате, за да посочите общата дължина. Това включва десетична запетая, знак, цифри и интервали. По подразбиране е 10.

десетична е броят на местата вдясно от десетичната запетая. Това може да бъде максимална стойност от 16. Ако е повече от това, тя се съкращава до 16.

Пример 1 – Основна употреба

Ето пример за това как работи:

ИЗБЕРЕТЕ STR(123.45) КАТО резултат;

Резултат:

+-----------+| Резултат ||-----------|| 123 |+-----------+

Пример 2 – Закръгляване

По подразбиране числото се закръглява до цяло число. Ако коригираме входа от предишния пример (например, увеличим дробната част от .45 до .55 ) получаваме следното:

ИЗБЕРЕТЕ STR(123.55) КАТО резултат;

Резултат:

+-----------+| Резултат ||-----------|| 124 |+-----------+

Пример 3 – Дължина

Когато използвате незадължителната дължина параметър, стойността му трябва да бъде по-голяма или равна на частта от числото преди десетичната запетая плюс знака на числото (ако има такъв).

Например следното е добре, защото дължина е по-голямо от частта от числото преди десетичната запетая:

ИЗБЕРЕТЕ STR(123.55, 4) КАТО резултат;

Резултат:

+---------+| Резултат ||----------|| 124 |+---------+

Следващият пример обаче демонстрира какво се случва, когато length стойността е твърде малка:

ИЗБЕРЕТЕ STR(123.55, 2) КАТО резултат;

Резултат:

+---------+| Резултат ||----------|| ** |+---------+

Също така имайте предвид, че дължина определя дължината на изхода и включва десетичната запетая, знака, цифрите и интервалите. Дължината по подразбиране е 10.

Ето пример за демонстриране на разликата в изхода в зависимост от стойността на дължината аргумент:

ИЗБЕРЕТЕ 123 КАТО '123', STR(123, 3) КАТО '3', STR(123, 10) КАТО '10', STR(123, 16) КАТО '16';

Резултат:

+-------+-----+------------+------------------+ | 123 | 3 | 10 | 16 ||-------+-----+-----------+------------------|| 123 | 123 | 123 | 123 |+-------+-----+------------+-----------------+ 

За друг начин да демонстрирам това, в следващия пример подрязвам изхода с помощта на TRIM() функция (и я сравнете с неподрязаната версия):

ИЗБЕРЕТЕ TRIM(STR(123, 16)) КАТО 'A', STR(123, 16) КАТО 'B';

Резултат:

+-----+------------------+| A | Б ||-----+------------------|| 123 | 123 |+-----+-----------------+

Пример 4 – десетични знаци

Ето пример за използване на незадължителния десетичен знак параметър:

ИЗБЕРЕТЕ STR(123.55, 8, 4) КАТО резултат;

Резултат:

+---------+| Резултат ||----------|| 123,5500 |+----------+

Забележете, че увеличих стойността за дължина за да побере десетичните знаци.

Ако намаля дължината стойност до 6 , разбрах това:

ИЗБЕРЕТЕ STR(123.55, 6, 4) КАТО резултат;

Резултат:

+---------+| Резултат ||----------|| 123,55 |+----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Начини за лесно възстановяване на основната база данни в SQL Server

  2. Вътрешни елементи на SQL Server:Планово кеширане, т. II – Прекомпилиране на планове

  3. Как да използвате сортиране (Поръчайте по) в Select Statement в SQL Server - SQL Server / TSQL Урок, част 109

  4. Групи за наличност на SQL Server AlwaysOn:Инсталация и конфигурация, част 1

  5. Изпълнете голям SQL скрипт (с GO команди)