0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 89
|
|
1 | |
Выделить число26.07.2012, 17:51. Показов 4671. Ответов 11
Метки нет (Все метки)
Всем привет!
есть строки содержащие числа, например: 1А, 8В, 10С, 5/3 и т.д. мне нужно получить число из этих строк, причем до первого не числового символа. Есть ли такая возможность в firebird????? Поясню зачем, мне нужно отсортировать значения в запросе и я хочу к числу меньшему 10 приставить 0 (нолик), чтобы сортировалось правильно. А то, например, если этого не делать то 10А будет выше чем 8А.
0
|
26.07.2012, 17:51 | |
Ответы с готовыми решениями:
11
Выделить в массиве число выделить его каким-нибудь цветом Вводится число, выделить в нем каждую цифру и записать число в обратном порядке Выделить число Выделить число в календаре! |
3142 / 1310 / 468
Регистрация: 31.05.2012
Сообщений: 4,646
|
|
26.07.2012, 20:42 | 2 |
Как вариант - написать udf-функцию
1
|
26.07.2012, 22:58 | 3 | |||||
В свете такой формулировки, и при условии, что число на первой позиции всегда есть, и что сама строка точно не короче двух символов, можно сортировать примерно по такому выражению:
1
|
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 89
|
|||||||||||
27.07.2012, 16:14 [ТС] | 4 | ||||||||||
arni, огромное спасибо, пока работает, но все же это не чистое решение.
Пока Вы не подсказали пытался написать udf. Что удивительно тестирую на дельфе все работает, компилирую и подключаю в firebird возвращает одни нули. Вот что я написал на дельфи:
Создал форму, на нее бросил Edit, Button и Label. Повесил событие на нажатие кнопки, в едит ввожу данные, нажимаю на кнопку и в лабл виже результат который ожидаю. А как только использую в firebird получаю одни нули????
0
|
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
|
|
28.07.2012, 11:18 | 6 |
arni, а similar to здесь нельзя попробовать?
0
|
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 89
|
|||||||||||
30.07.2012, 09:11 [ТС] | 8 | ||||||||||
Информация пока (почему пока? потому что в нашей работе постоянно возникаю новые вводные) хранится в таком виде, например: 4BKS00GE021.2A или 4BKS00GE021.10A или 4BKS00GE021.2/3 или 4BKS00GE021.6/9
это несколько вариантов, описывающие основной принцип в каком виде хранится информация в этом поле. Причем до точки закодировано устройство, а после точки место которое в нем используется. Соответственно надо сортировать места в пределах одного устройства в порядке возрастания. Поэтому я в первом представлении делаю так:
0
|
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
|
|
30.07.2012, 09:34 | 9 |
ИМХО, конечно, но так бы делать никогда не стал. Устройство кодировал бы отдельно, место отдельно. Если во внешнем представлении надо организовать код <УСТРОЙСТВО>.<MЕСТО>, то это можно сделать вычисляемым полем.
Ну, и использование кирилицы при именовании объектов БД считаю экзотикой
0
|
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 89
|
|
30.07.2012, 10:01 [ТС] | 10 |
0
|
31.07.2012, 12:01 | 11 | |||||
Может что-то типа такого подойдет
если решил проблему отпишись как сделал.
1
|
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 89
|
|
31.07.2012, 16:09 [ТС] | 12 |
Bit_Man, т.к. сроки всегда горят и хоть медленно но работает я использую вариант arni. Но как только сдадим документацию, планирую все же добить udf и испробовать твой вариант.
А возможно даже подрехтую базу, разделю на две части относительно точки и заставлю сразу вносить 01, 02 и т.д.
0
|
31.07.2012, 16:09 | |
31.07.2012, 16:09 | |
Помогаю со студенческими работами здесь
12
Выделить число из строки Выделить из строки число Выделить число из вектора Выделить из строки число Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |