Нужны несколько нулей перед числом в MySQL формуле
Добавлено: 16 янв 2019, 00:51
Добрый день!
Стоит задача сделать некую шаблонную нумерацию, используя нули перед порядковым номером. Номер документа должен быть такой "конструкции": 000001, при этом, если порядковый номер набирает уже 2-значное число, то должно отображаться 000010, т.е. общее количество "числовых" символов с учетом нулей перед порядковым номером не должно меняться (как в данном примере - должно быть 6 символов, не больше - не меньше). В итоге должна получиться некая "маска" нумерации, которая не будет менять итоговое кол-во символов.
Для этого пытался использовать выражение:
[416] - это ID поля с типом Автоинкремент (он в формуле используется только для вычисления количества символов - напр, если число больше 9, то уже будет 2 символа, больше 99 - 3 символа, в общем на основе этого строил формулу), чтобы далее к "нулям" подставлялся порядковый номер и таким образом формировался шаблон нумерации (это планирую делать уже в поле Статический текст по шаблону).
также пытался "вставлять" функцию объединения строк CONCAT('00000'), но я не силен в MySQL, в итоге в поле выводится просто "0". Я так понимаю, система если видит число (тем более ноль), то все равно в виде числа его представляет?
Как можно решить данный вопрос?
Стоит задача сделать некую шаблонную нумерацию, используя нули перед порядковым номером. Номер документа должен быть такой "конструкции": 000001, при этом, если порядковый номер набирает уже 2-значное число, то должно отображаться 000010, т.е. общее количество "числовых" символов с учетом нулей перед порядковым номером не должно меняться (как в данном примере - должно быть 6 символов, не больше - не меньше). В итоге должна получиться некая "маска" нумерации, которая не будет менять итоговое кол-во символов.
Для этого пытался использовать выражение:
Код: Выделить всё
case
when [416] <10 then '00000'
when [416] >=10 AND [416]<100 then '0000'
when [416] >=100 AND [416]<1000 then '000'
when [416] >=1000 AND [416]<10000 then '00'
when [416] >=10000 AND [416]<100000 then '0'
when [416] >=100000 then ''
endтакже пытался "вставлять" функцию объединения строк CONCAT('00000'), но я не силен в MySQL, в итоге в поле выводится просто "0". Я так понимаю, система если видит число (тем более ноль), то все равно в виде числа его представляет?
Как можно решить данный вопрос?