powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обратное действия LPAD (Firebrid)
37 сообщений из 37, показаны все 2 страниц
Обратное действия LPAD (Firebrid)
    #38837814
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Префикс = '0';
Номер = 12;
Длина кода = 5;

Получаю с помощью lpad(12, 5, '0') = '00012';

Теперь как я могу получить цифру 12 обратно.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837816
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Префикс может был любой.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837831
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alimkulov,

replace( str, :prefix, '' )
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837837
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

А что будет с '000102'? :)
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837838
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидAlimkulov,

replace( str, :prefix, '' )

Про это я знал. Но когда код имеет 00030, то replace( str, :prefix, '' ) дает результат 3. Вот в чем проблема!
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837840
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlimkulovВсем привет!

Префикс = '0';
Номер = 12;
Длина кода = 5;

Получаю с помощью lpad(12, 5, '0') = '00012';

Теперь как я могу получить цифру 12 обратно.

Код: sql
1.
2.
3.
4.
5.
6.
7.
declare CODE integer;
declare S varchar(100);

CODE = '00012';
S = CODE;

suspend; ?
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837845
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor,
Тоже не вариант! Потому что префикс вдруг имеет значение 'F'. Тогда код получается 'FFF12'.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837856
vlad333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
select trim(LEADING '0' from '00012')
from rdb$database
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837860
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alimkulov,

trim()
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837871
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alimkulovpastor,
Тоже не вариант! Потому что префикс вдруг имеет значение 'F'. Тогда код получается 'FFF12'.

хоть что-то известно про структуру кода?

substring может помочь.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837872
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor,

Уже 2 раза правильно ответили. Не читатель?
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837878
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlad333
Код: sql
1.
2.
select trim(LEADING '0' from '00012')
from rdb$database



Спасибо! Можете объяснить, в чем здесь секрет?
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837883
vlad333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Секрет в том, что ФБ поддерживает такой синтаксис
http://firebirdsql.su/doku.php?id=trim

А мсскл так не умеет.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837884
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А всё, понял!

Syntax:
Код: sql
1.
2.
3.
4.
5.
TRIM ([<adjust>] str)
<adjust>::= {[where] [what]} FROM
where::= BOTH | LEADING | TRAILING /* default is BOTH */
what ::= The substring to be removed (repeatedly if necessary)
from str's head and/or tail. Default is ' ' (space).



Examples:
Код: sql
1.
2.
3.
4.
5.
6.
select trim (' Waste no space ') from rdb$database                      -- returns 'Waste no space'
select trim (leading from ' Waste no space ') from rdb$database     -- returns 'Waste no space '
select trim (leading '.' from ' Waste no space ') from rdb$database  -- returns ' Waste no space '
select trim (trailing '!' from 'Help!!!!') from rdb$database                -- returns 'Help'
select trim ('la' from 'lalala I love you Ella') from rdb$database        -- returns ' I love you El'
select trim ('la' from 'Lalala I love you Ella') from rdb$database       -- returns 'Lalala I love you El'
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837976
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alimkulovпрефикс вдруг имеет значение 'F'. Тогда код получается 'FFF12'.
А если префикс имеет значение "1", то ты обламываешься при любом раскладе. И это
правильно, ибо за такое проектирование БД надо руки отрывать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837987
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

но если использовaть строчные цифры...

вообще это уже старую игрушку color wars напоминает
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38837997
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovAlimkulovпрефикс вдруг имеет значение 'F'. Тогда код получается 'FFF12'.
А если префикс имеет значение "1", то ты обламываешься при любом раскладе. И это
правильно, ибо за такое проектирование БД надо руки отрывать.

Префикс не имеет значение "1" и от 1 до 9. Эти же цифры не префиксами считаются а считаются номерами кода!

Dimitry SibiryakovИ это правильно, ибо за такое проектирование БД надо руки отрывать.

Где то я читал эту выражении. Вы всегда и всем так?

Мое мнения: лучше быт человеком, чем быт профессиональным программистам как Вы!
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838010
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlimkulovВы всегда и всем так?
Нет, только проктостоматологам. Как только к твоему числу прибавился префикс и результат
был занесён в какое-то поле, на него распространяется первая НФ, которая запрещает
выделять из значения отдельные куски.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838017
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlimkulovDimitry SibiryakovИ это правильно, ибо за такое проектирование БД надо руки отрывать.

Где то я читал эту выражении. Вы всегда и всем так?

Мое мнения: лучше быт человеком, чем быт профессиональным программистам как Вы!

Ну это ты зря. Пока учишься (или шлифуешь свои умения до профессионализма) - нужен кто-то кто подскажет. А способы подсказать могут быть разными - кто то разжует и сопли вытрет в рот положит,а кто то носом ткнет в косяки.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838064
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxА что будет с '000102'? :)да, я когда "увидел" это, то комп уже выключил. Фиг с ним, тут уже ответ правильный привели :-)
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838096
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovпервая НФ, которая запрещает
выделять из значения отдельные кускиу меня теоретический вопрос.
кому запрещает?
взять тот же ИНН, он может формироваться динамически, а потом из него можно вытащить номер региона.
почему мне этого не сделать?
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838103
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидя когда "увидел" это, то комп уже выключил
матрица поимела тебя, Нео? :-)
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838112
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadsterпочему мне этого не сделать?
"ТАм проезд запрещён, обрыв. Но Вам - туда можно." (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838128
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы не хранить только хэш MD5 от ИНН?
Ведь потом из него можно вытащить ИНН, минутное дело на любом суперкомпьютере из топ-100.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838152
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значить идея такая!
User настроить код товара как ему нравится!
Для группы товаров компьютеры, он настроить:

префикс = 'COMP';
длина кода = 6;

Тогда мой алгоритм даст ему код для первого компьютера 'COMP01', для 20 - го комп. 'COMP20'.

Что то не так?
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838155
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Alimkulov!
You wrote on 19 декабря 2014 г. 14:42:01:

Alimkulov> Что то не так?
зачем это хранить в виде монолитной "композиции"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838161
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийзачем это хранить в виде монолитной "композиции"?


Как еще можно хранить?
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838170
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrТаблоидя когда "увидел" это, то комп уже выключилматрица поимела тебя, Нео? :-)Пока что я её поимел. Отправил Алексу результаты своего brute-force массажа, там есть на что взглянуть :-) Ладно это оффтоп уже.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838175
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Alimkulov!
You wrote on 19 декабря 2014 г. 14:50:55:

Alimkulov> Как еще можно хранить?
котлеты отдельно, мухи отдельно.

ты пытаешься построить базу в терминах "экранного отображения",
а не "машинного хранения"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838177
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlimkulovЧто то не так?
До этого момента - всё так. "Не так" наступает когда ты зачем-то пытаешься из COMP20
вычленить эту самую "20".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838195
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ладно ребята! Я с Вами согласен!
Скажите мне тогда, как вообще правильно делаете Вы! Например автоматический получит Код товара или табельный номер сотрудника.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838202
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alimkulov> Скажите мне тогда, как вообще правильно делаете Вы!

Тебе же говорят - храни отдельно каждый атрибут,
а не "выводимый на экран/отчёт текст". Не храни
ФИО или ФамилияИмяОтчество - храни отдельно
имя, фамилию и отчество, а из них будешь получать
ФИО и всё остальное. И т.д.

Табельный номер сотрудника есть цельный атрибут
и может/должен храниться в одном поле, но если ты
хочешь по нему определять подразделение, например,
то это уже ошибка - должно быть отдельное поле для
ID подразделения - обсуждалось не так давно, поищи.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838218
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,
Спасибо Вам!
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838261
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryА почему бы не хранить только хэш MD5 от ИНН?ИНН для примера, в реальности у меня БД регионов были с ПК в котором номер региона был ведущим замыкающим, я всегда мог вытащить в любом отчёте номер региона из записи.
ЗЫ ведущим это в другой СУБД
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838265
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlimkulovКод товара или табельный номер сотрудника.табельный номер - это табельный номер, а код товара можно формировать в момент вставки автоматически.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838345
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadsterИНН для примера
хреновый пример. ИНН имеет жесткий формат. первые две цифры регион, следующие две - номер налоговой. Зачем пихать номер региона в конец строки - непонятно, тем более что ИНН физиков и ИП состоит из 12 цифр, а юриков - из 10.
...
Рейтинг: 0 / 0
Обратное действия LPAD (Firebrid)
    #38838514
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvхреновый пример. ИНН имеет жесткий формат. первые две цифры регион, следующие две - номер налоговой. Зачем пихать номер региона в конец строки - непонятно, тем более что ИНН физиков и ИП состоит из 12 цифр, а юриков - из 10.первое, что вспомнил, вот и всё.
регион в конец ID не я пихал, так нам прислали софт, в своей разработке регион был в начале ID, по моему имеет право на жизнь, иногда очень удобно, не надо пихать регион во все превсе таблицы.
так что разобрать формализованный код тоже иногда полезно, например код КЛАДР, создателям его наплевать было на все НФ, а работать с ним приходится :)
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обратное действия LPAD (Firebrid)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]