Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Работа с нулями перед номерами серий  [new]
temrus
Member

Откуда: р-О-ссия, Барвиха
Сообщений: 126
Добрый день, форумчане!

Какие есть идеи по поводу решения следующей задачи?:

В ХП передается начальное значение серии и число серий для добавления, ну допустим:
Передаем начальное значение: 000005 и число серий: 20.
Таблица после добавления должна иметь вид:
000005
000006
000007
000008
000009
000010
000011
000012
000013
...
000024

Каким образом работать с нулями до значащих цифр номера серии?
14 ноя 11, 15:27    [11593845]     Ответить | Цитировать Сообщить модератору
 Re: Работа с нулями перед номерами серий  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
temrus,

select replace (str(N,6),' ','0') from Numbers where N between @start and @end
где Numbers таблица чисел
14 ноя 11, 15:33    [11593920]     Ответить | Цитировать Сообщить модератору
 Re: Работа с нулями перед номерами серий  [new]
temrus
Member

Откуда: р-О-ссия, Барвиха
Сообщений: 126
SomewhereSomehow
temrus,

select replace (str(N,6),' ','0') from Numbers where N between @start and @end
где Numbers таблица чисел


А если пользователь ввёл
001 или 000000001?? То есть кол-во цифр в серии не ограничено.
14 ноя 11, 15:47    [11594070]     Ответить | Цитировать Сообщить модератору
 Re: Работа с нулями перед номерами серий  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
temrus
SomewhereSomehow
temrus,

select replace (str(N,6),' ','0') from Numbers where N between @start and @end
где Numbers таблица чисел


А если пользователь ввёл
001 или 000000001?? То есть кол-во цифр в серии не ограничено.
А если б он вёз патроны? ©
14 ноя 11, 15:51    [11594104]     Ответить | Цитировать Сообщить модератору
 Re: Работа с нулями перед номерами серий  [new]
temrus
Member

Откуда: р-О-ссия, Барвиха
Сообщений: 126
iap,

Ну ладно, ладно, не распыляйтесь.
Думаю, как сделать.
14 ноя 11, 15:56    [11594146]     Ответить | Цитировать Сообщить модератору
 Re: Работа с нулями перед номерами серий  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
temrus,

Ну, посчитайте количество циферок во введеной строке (функцией LEN, например), запомните в переменной и добивайте сгенеренные строки лидирующими нулями до этой длины...
14 ноя 11, 15:58    [11594163]     Ответить | Цитировать Сообщить модератору
 Re: Работа с нулями перед номерами серий  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
iap,
=))

temrus,
Ну вот а интересно, если пользователь ввел 99, ему нужно показывать 99 или 099. А если 1, то 001 или 01? Вы там определитесь уж с выравниванием. Или надо просто 0000 добавить? Тогда так и пишите '0000'+convert(varchar(10),N)... Если нужно выравнивание какое-нибудь хитрое, то в str можно использовать переменную, выражение и т.д.
14 ноя 11, 15:58    [11594165]     Ответить | Цитировать Сообщить модератору
 Re: Работа с нулями перед номерами серий  [new]
temrus
Member

Откуда: р-О-ссия, Барвиха
Сообщений: 126
SomewhereSomehow,

Если 99 то и 99 показывать!!
Вот ведь в чем загвоздка....
14 ноя 11, 16:09    [11594251]     Ответить | Цитировать Сообщить модератору
 Re: Работа с нулями перед номерами серий  [new]
ura
Member [заблокирован]

Откуда: Киев
Сообщений: 932
select right('0000000000'+'123',8)
14 ноя 11, 16:13    [11594279]     Ответить | Цитировать Сообщить модератору
 Re: Работа с нулями перед номерами серий  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
temrus
SomewhereSomehow,

Если 99 то и 99 показывать!!
Вот ведь в чем загвоздка....

А если 100?, то показывать сто? А 99 тогда так и показывать 99? тогда может вам просто селект сделать?=)
Загвоздка в том, что вы либо не можете придумать алгоритм, либо не можете его объяснить нормально...
Может быть вам надо по самому максимальному числу в текущем запросе на последовательность определить, и все остальные под него подгонять? Тогда подставляйте вместо числа 6, выражение len(convert(varchar(10),@end)).
14 ноя 11, 16:20    [11594350]     Ответить | Цитировать Сообщить модератору
 Re: Работа с нулями перед номерами серий  [new]
temrus
Member

Откуда: р-О-ссия, Барвиха
Сообщений: 126
SomewhereSomehow,

я задачу по-другому решил.
под каждый ТИП серии (ну по длине серии) я дополняю необходимым количеством нулей.

вуаля :)

вот...
14 ноя 11, 19:28    [11595935]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить