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

Откуда:
Сообщений: 17
Добрый день. Возможно и тривиальная задача, но прошу помощи.

Есть таблица значений, она большая, Num:
Number
613
2356
42698

Необходимо прибавить столько '0' к столбцу Number, чтобы значения столбца были ровно 6. То есть должно получится так:

NewNumber
000613
002356
042698

Можно конечно с условием поработать, но думаю есть решение с вычислением разницы, но незнаю каким образом.
9 июл 18, 09:15    [21554994]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
arslanov_a,

SELECT 
	RIGHT('000000'+CAST(Number as VARCHAR(6)),6)
FROM (VALUES
(613	),
(2356	),
(42698	)
) as x(Number)
9 июл 18, 09:22    [21555010]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 53738
лучше бы сразу правильный тип в БД
скажем, VARCHAR(6)

т.к. это уже явно не число, а какой-то идентификатор
9 июл 18, 09:24    [21555016]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
arslanov_a
Member

Откуда:
Сообщений: 17
TaPaK,

Благодарю
9 июл 18, 09:36    [21555052]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
otets1988
Member

Откуда:
Сообщений: 21
Есть еще функция format
9 июл 18, 09:37    [21555057]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
SELECT REPLACE(STR(Number,6),' ','0')
FROM (VALUES
(613	),
(2356	),
(42698	)
) as x(Number);
9 июл 18, 12:06    [21555621]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 49537
А стандартный LPAD не поддерживается?..
9 июл 18, 14:40    [21556450]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
Dimitry Sibiryakov,

а что вы подразумеваете под "стандартный"?
в каком таком стандарте это описано?
9 июл 18, 14:51    [21556501]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
Klick
Member

Откуда: Стерлитамак - Москва
Сообщений: 1023
arslanov_a,

select format(613,'000000')
select format(2356,'000000')
select format(42698,'000000')
9 июл 18, 20:59    [21557694]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 49537
Посетитель
а что вы подразумеваете под "стандартный"?

ANSI SQL стандарт.
10 июл 18, 13:52    [21559310]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Dimitry Sibiryakov
Посетитель
а что вы подразумеваете под "стандартный"?

ANSI SQL стандарт.

я не смог найти её в стандарте, подскажите ссылочу
10 июл 18, 13:55    [21559323]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
TaPaK,

я вот, кстати, тоже пытался найти упоминание LPAD в ANSI, до того как спросил.

а ща на всякий еще раз заглянул - там есть таки PAD.
правда, есть один нюанс. он там вроде как атрибут у collation

а вот чтобы ANSI - функция, не удалось найти такую.
правда, у меня только стандарт 92 года, более свежие версии, как я понимаю, в свободном доступе отсутствуют
10 июл 18, 14:22    [21559462]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Посетитель,

ну раз человек пишет что стандартный, значить так и есть, и покажет нам это, заодно и узнаем с какого стандарта
10 июл 18, 14:24    [21559476]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
из оракла парень пришёл, чего вы к нему так
10 июл 18, 14:38    [21559535]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
Konst_One,

скорее из Firebird, судя по статистике форума.

но, как сказал TaPaK, не стоит торопиться.
Возможно, нас ждет сеанс просвещения в виде выдержки из ANSI
10 июл 18, 14:42    [21559550]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
Посетитель
правда, у меня только стандарт 92 года, более свежие версии, как я понимаю, в свободном доступе отсутствуют
BNF Grammar for ISO/IEC 9075-2:2003 - Database Language SQL (SQL-2003) SQL/Foundation
10 июл 18, 16:11    [21559875]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
iap,

это к слову о наличии более свежего доступного стандарта?
если да, то спасибо, ссыль сохраню

только вот про наличие стандартной функции PAD|LPAD|RPAD и иже с ними, тут никакой речи
только про создание collation с NO PAD | PAD SPACE.
ровно то же самое есть и в sql 92.
10 июл 18, 16:16    [21559880]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
Посетитель
iap,

это к слову о наличии более свежего доступного стандарта?
если да, то спасибо, ссыль сохраню

только вот про наличие стандартной функции PAD|LPAD|RPAD и иже с ними, тут никакой речи
только про создание collation с NO PAD | PAD SPACE.
ровно то же самое есть и в sql 92.
Я тоже посмотрел. Нет в стандарте никакого LPAD.
Хотя, я много раз пытался найти более свежие стандарты, и не смог.
Представляете, текст стандарта можно только купить за нехилые бабки! :((
10 июл 18, 16:26    [21559915]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7401
Это с глобуса оракла.
10 июл 18, 17:17    [21560075]     Ответить | Цитировать Сообщить модератору
 Re: Прибавка нулей к строке чисел  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 49537
iap
Нет в стандарте никакого LPAD.

Ну нет так нет. Значит, не судьба.
11 июл 18, 13:28    [21562232]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить