sql преобразовать текстовую строку из 1 целого числа (8) в 3 целых числа (888) - PullRequest
1 голос
/ 01 марта 2011

У меня небольшая проблема с приведенным ниже кодом - он возвращает значение, которое я ищу, но мне нужно значение длиной 3 цифры - т.е. он возвращает «1», но мне нужно «001» - любая помощь будет принята с благодарностью

select convert(varchar(3),(select count(ptMatter) + 1 from lamatter where  
 convert(varchar(10), getdate(), 103)=convert(varchar(10), dateadd, 103)))

Ответы [ 3 ]

4 голосов
/ 01 марта 2011
Select Right('000000' + convert(varchar(3), Result),3)
From yourTable

для вашего точного запроса:

Select Right('000000' + convert(varchar(3), (select count(ptMatter) + 1 from lamatter where convert(varchar(10), getdate(), 103)=convert(varchar(10), dateadd, 103)) ),3)
0 голосов
/ 01 марта 2011

Что-то вроде этого:

DECLARE @i int;
SELECT @i = 1;
SELECT REPLACE(STR(@i, 3), ' ', '0')
0 голосов
/ 01 марта 2011

Просмотрите документацию базы данных, если существует функция lpad.Например, это версия mysql: http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_lpad

edit: извините, не видел тега tsql ... Как сказано в другом ответе, функция right - это путь,здесь объясняется: Самый эффективный способ T-SQL для заполнения varchar слева до определенной длины?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...