Как я могу использовать рекурсию для построения выражения условия из таблицы - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть таблица, содержащая условия, которые должны быть выполнены для выполнения задания.

SQL для запуска:

select jc.cond_job_name,jc.indx,jc.indx_ptr,jc.joid,jc.operator,jc.type
from dbo.ujo_job_cond jc
where jc.joid = '74689' 

Результат:

cond_job_name   indx    indx_ptr    joid    operator    type
                0       0           74689   &           B
                1       0           74689   |           B
job1            2       1           74689               d
job2            3       1           74689               d
job3            4       0           74689               d

с использованием столбцов indx и indx_prt мы можем создать выражение: ( d (job1) | d (job2)) & d (job3)

Путем самостоятельного объединения я могу получить операторы и имя cond_job_name в одной строке.

* * SQL:

select a.cond_job_name,a.indx,a.indx_ptr,b.operator,a.type 
from dbo.ujo_job_cond a, dbo.ujo_job_cond b
where a.joid = b.joid 
    and a.indx_ptr = b.indx
    and a.type != 'B'
    and a.joid = '74689'
order by a.indx, a.indx_ptr 

со следующими результатами

cond_job_name   indx    indx_ptr    operator    type
job1            2       1           |           d
job2            3       1           |           d
job3            4       0           &           d

Мне нужна помощь для концептуального создания рекурсивной функции, которая будет производить вывод на основе таблица: (d (job1) | d (job2)) & d (job3)

Я работаю в C#, код изначально разрабатывался для работы с oracle, но теперь он работает с MS SQL Server 2008 и функции «LEAD / LAG» недоступны

Буду признателен за любую помощь. Опять же, я ищу концепцию для решения этой проблемы, я могу написать код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...