|
Отсечение цифр от букв в строке. firebird 2.5.
|
|||
---|---|---|---|
#18+
Здравствуйте. Есть строки, необходимо вытащить только цифры, то есть: (источник => результат) DT1_NARABOTKI => 1 KOLVO_IMPULSOV_VHOD_11 => 11 DM_2_TONNY => 2 На оракле такую тему уже обсуждали, на фб функции tranclate() нет, а функция replace() работает иначе, что не позволяет переделать оракловский код. Если захотите сами проверить, вот обсуждение на оракле - /topic/175677#1463696 Или такое невозможно сделать на firebird? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2011, 15:40 |
|
Отсечение цифр от букв в строке. firebird 2.5.
|
|||
---|---|---|---|
#18+
wotkaЗдравствуйте. Есть строки, необходимо вытащить только цифры Ну и делай на клиенте чего хошь. FB тут при как? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2011, 15:50 |
|
Отсечение цифр от букв в строке. firebird 2.5.
|
|||
---|---|---|---|
#18+
Тьху, башка уже не варит. Первый день работаю с фб, 4 часа уже этот запрос пытаюсь придумать. Юзаю субд IBExpert. Нужен именно sql код. Извините если запутываю, я новичок :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2011, 15:57 |
|
Отсечение цифр от букв в строке. firebird 2.5.
|
|||
---|---|---|---|
#18+
А если группы цифр встретятся несколько раз? Ничего не мешает написать УДФ с требуемым функционалом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2011, 15:58 |
|
Отсечение цифр от букв в строке. firebird 2.5.
|
|||
---|---|---|---|
#18+
wotka, если количество "прочих" симполов ограничено (например, только латинские буквы), можешь сделать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2011, 16:27 |
|
Отсечение цифр от букв в строке. firebird 2.5.
|
|||
---|---|---|---|
#18+
tetxx_, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2011, 16:50 |
|
Отсечение цифр от букв в строке. firebird 2.5.
|
|||
---|---|---|---|
#18+
Тебе нужна функция DECLARE EXTERNAL FUNCTION F_DIGITS CSTRING(32760) NULL RETURNS CSTRING(32760) FREE_IT ENTRY_POINT 'digits' MODULE_NAME 'FreeAdhocUDF'; Потом сделай select F_DIGITS('asd12 er3') from rdb$database Получиш как резултат '123' Антон ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2011, 19:28 |
|
Отсечение цифр от букв в строке. firebird 2.5.
|
|||
---|---|---|---|
#18+
wotka, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2011, 20:06 |
|
Отсечение цифр от букв в строке. firebird 2.5.
|
|||
---|---|---|---|
#18+
BanditJolly, спасибо, пригодилось. Несколько модифицированная функция B_DIGITS: 1 вытаскивает только цифры, 0 только нецифры create or alter procedure RSP11_EXTRACT_DIGITS ( STRING varchar(32), B_DIGITS integer) returns ( CH_RESULT varchar(32)) AS declare variable CH char(1); declare variable L integer; declare variable I integer; begin CH_RESULT = ''; L = CHAR_LENGTH(string); I = 1; while (I <= L) do begin CH = substring(STRING from I for 1); if ( ((CH between '0' and '9') AND (B_DIGITS=1)) or (not (CH between '0' and '9') AND (B_DIGITS=0)) ) then CH_RESULT = CH_RESULT || CH; I = I + 1; end suspend; end ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2015, 16:10 |
|
|
start [/forum/topic.php?fid=40&msg=37339621&tid=1562594]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 257ms |
total: | 400ms |
0 / 0 |