|
#1
|
|||
|
|||
Лидирующие нули
Суть такая , есть БД , где в одной из колонок есть значения 005, 099, 0260.
Сделано для правильной сортировки. Не могу понять , как организовать поиск в этой колонке с применением только 5, 99,260. То есть, поиск работает только если указать 005, а 5 не ищет. Требуется указывать только 5 и получать 005 или 260 и получать 0260 Благодарен |
#2
|
||||
|
||||
Можно запросом попробовать с оператором LIKE примерно так
Код:
SELECT имя_поля FROM имя_таблицы WHERE имя_поля LIKE "%99" Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
starcon (12.05.2016)
|
#3
|
||||
|
||||
Цитата:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#4
|
||||
|
||||
Нет, наверное - это текст, посему конструкция с масочным предикатом - самое то
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Цитата:
Но выбирает , 005,055,065,075,085 , ну поняли суть. Не подходит |
#6
|
|||
|
|||
Тип данных Varchar
|
#7
|
||||
|
||||
Тогда может - выставите длину строки равной максимальной разрядности предпологаемого числа (напр. "0000") а дальше
Код:
function wr(ds: string): string; var i, b: integer; begin Result:= '0000'; b:= 4; for i := Length(ds) downto 1 do begin Result[b]:= ds[i]; dec(b); end; end; или Код:
function wr(ds: string): string; begin Result:= ds; while Length(Result) < 4 do Result:= '0' + Result; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 12.05.2016 в 16:17. |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
starcon (13.05.2016)
|
#8
|
||||
|
||||
Если для хранения числовых данных применен символьный тип поля, то это уже неправильно. даже ради правильной сортировки. ведь число всегда можно привести к символьной строке фиксированной длины и тогда сортировка будет работать как надо. пример:
Код HTML:
Цитата:
Цитата:
Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 12.05.2016 в 16:37. |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
starcon (13.05.2016)
|
#9
|
||||
|
||||
Если таблица не очень большая, то прямо в запросе переводи строку в число и сравнивай с числом. Медленно будет, но будет работать.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
starcon (13.05.2016)
|
#10
|
|||
|
|||
Цитата:
В столбце хранятся не только цифры , но и буквы |
#11
|
||||
|
||||
Результат LPAD от этого не изменится
Пишу программы за еду. __________________ |