powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / задачка )
10 сообщений из 10, страница 1 из 1
задачка )
    #39329085
4wel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите чем реализовать...

есть строка 'a * 100 / b'

при этом есть таблица значений/формул в который храниться что например
а | с + b
b | e + f
с | x + y

задача разложить формулу на составляющие, строку типа:

((x + y) + (e + f)) / (e + f)
...
Рейтинг: 0 / 0
задачка )
    #39329087
4wel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4wel,

т.е. для тех переменных которым есть соответствия найти и подставить из таблицы
...
Рейтинг: 0 / 0
задачка )
    #39329241
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция replace
на реплэйсе сидит и реплэйсом погоняет
...
Рейтинг: 0 / 0
задачка )
    #39329246
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4wel,

+
и в поиске есть .. на тему калькулятора на sql,
примерно как тут 5587534
...
Рейтинг: 0 / 0
задачка )
    #39329251
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawish,

это тема не калькулятора, а, скорее, накопительных суммирования/нумерации по иерархии, то есть накопительный иерархический реплейс.
...
Рейтинг: 0 / 0
задачка )
    #39329256
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-orawish,

это тема не калькулятора, а, скорее, накопительных суммирования/нумерации по иерархии, то есть накопительный иерархический реплейс.
аналогично тому, как таки в том калькулятор е решался разбор вложенности круглых скобок
;)
...
Рейтинг: 0 / 0
задачка )
    #39329345
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем можно и без replace
По конкретно данному примеру, где все буквы в строке обозначают переменные, использовать алгоритм разложения на атомарные единицы и их обработку с последующим соединением.
Примерно так (базы нет под рукой, могу ошибиться без проверки, но пример будет понятен):
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with a as
(select 'a * 100 / b + с' str from dual),
t as
 (select 'а' as sym, 'с + b' as form
  from dual
  union all
  select 'b' as sym, 'e + f' as form
  from dual
  union all
  select 'c' as sym, 'x + y' as form
  from dual),
a1 as
 (select level as n, substr(a.str, level, 1) as s
  from a
  connect by level <= length(a.str))
select listagg(coalesce('('||t.form||')', a1.s), '') within group (order by a1.n) from a1
left join t
on a1.s = t.sym
...
Рейтинг: 0 / 0
задачка )
    #39329370
4wel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fogel,

к концу дня написал через циклы с реплейсами ) но может можно теперь найти более красивое решение
...
Рейтинг: 0 / 0
задачка )
    #39329442
ЦТЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fogelмогу ошибитьсядля одноуровневой замены деление на посимволы перебор.
...
Рейтинг: 0 / 0
задачка )
    #39329443
ну и зачем
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orawishразбор вложенности круглых скобокгде в исходных данных скобки?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / задачка )
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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