Функции Transact-SQL для работы со строками и данными типа даты/времениФункции работы со строками в MS SQL SERVERФункции STR, SPACE, LTRIM и RTRIM стр. 1 |
||||||||||||||||||
Функция STR() преобразует число к его символьному представлению:
При этом преобразовании выполняется округление, а длина задает длину результирующей строки. Например,
Обратите внимание, что если полученное строковое представление числа меньше заданной длины, то добавляются лидирующие пробелы. Если же результат больше заданной длины, то усекается дробная часть (с округлением); в случае же целого числа получаем соответствующее число звездочек «*»:
Кстати, по умолчанию используется длина в 10 символов. Имея в виду, что год представлен четырьмя цифрами, напишем:
Уже почти все правильно. Осталось учесть случай, когда число символов в имени менее 6, так как в этом случае функция STUFF дает NULL. Ну что ж, вытерпим до конца мучения, связанные с использованием этой функции в данном примере, попутно применив еще одну строковую функцию. Добавим конечные пробелы, чтобы длина имени была заведомо больше 6. Для этого имеется специальная функция SPACE(число пробелов):
Функции LTRIM(строковое выражение) и RTRIM(строковое выражение) Отсекают, соответственно, лидирующие и конечные пробелы строкового выражения, которое неявно приводится к типу varchar. Пусть требуется построить такую строку: <имя пассажира>_<идентификатор пассажира> на базе таблицы Passenger. Если мы напишем: то в результате получим что-то типа:
Это связано с тем, что столбец name имеет тип CHAR(30). Для этого типа короткая строка дополняется пробелами до заданного размера (у нас 30 символов). Здесь нам как раз и поможет функция RTRIM:
|