-
Добрый день!
Подскажите, пожалуйста, есть ли в Firebird встроенная функция для отделения цифр от букв, например:
SELECT функция('a123gb456') ...
Чтобы в результате получилось '123456'.
-
> Чтобы в результате получилось '123456'. SELECT REPLACE(REPLACE(REPLACE('a123gb456', 'a', ''), 'g', ''), 'b', '')
в MSSQL работает... а в Firebird-е вроде что то по функциям/синтаксису совпадает.
-
если так перечислять весь алфавит и знаки ... :(
Хотелось бы указать диапазон, например REPLACE('a123gb456', ['a'..'z'], '')
-
Просмотрел все встроенные ф-ции в Firebird и ничего не нашёл.
Остаётся только использовать ConvertSymbols(s1, s2, s3) из rFunc.dll. (Меняет символы из набора s2 на набор s3 в строке s1.)
-
написать UDF совсем не сложно.
-
execute block (in_par varchar(1024)=:in_par) returns (out_par varchar(1024)) as declare variable i integer; declare variable s varchar(1); begin i = 1; out_par = ''; while (i<=char_length(in_par)) do begin s = substring(in_par from :i for 1); if ( s between '0' and '9') then out_par = out_par ||s; i = i + 1; end suspend; end
-
Удалено модератором Примечание: спам
|