как реализовать с предложением в основном запросе - PullRequest
0 голосов
/ 07 мая 2020

У меня есть запрос, и для повышения производительности я написал предложение with. Теперь основная проблема в том, что я не знаю, как реализовать предложение with в основном запросе выбора? присоединиться к пункту? Может ли кто-нибудь направить меня сюда. Благодарим за любую помощь.

Begin
OPEN p_resultset FOR
with inputs  as (  
  select s.sid, t.number, s.state, t.city "city"
  from student s
  join dpartment t on t.dept_id = s.sid
  where s.act_status in ('A, 'B')
  and t.city in (select city from empCity g)
     )
     
     //how to implement above with clause in my below main query 
     
     select s.sid, s.state, get_name("name", e.fullname) "name", e.endDate
     
     from All_Emp e
     join student s on e.id = s.sid and s.act_status = 'A'
     join student ss on s.sid=ss.sid and ss.act_status = 'D'
     join department t on s.sid = t.dept_id
     join performance l on l.pid = s.sid
     join empcity g on s.city = g.city
     
     where 
     
     where e.endDate > s.endDate

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Вы можете использовать как имя таблицы с заданным псевдонимом «input».

WITH inputs AS
(
       SELECT s.sid,
              t.number,
              s.state,
              t.city "city"
       FROM   student s
       join   dpartment t
       ON     t.dept_id = s.sid
       WHERE  s.act_status IN ('A',
                               'B')
       AND    t.city IN
              (
                     SELECT city
                     FROM   empcity g))
SELECT s.sid,
       s.state,
       Get_name("name", e.fullname) "name",
       e.enddate
FROM   all_emp e  
join   performance l
ON     l.pid = s.sid
join   empcity g
ON     s.city = g.city
join   inputs i
ON     i.sid=e.id --here is your "with select"
WHERE
where  e.enddate > s.enddate
0 голосов
/ 07 мая 2020

Вы ссылаетесь на CTE так же, как на таблицу или представление. Итак, где-то в предложении FROM у вас будет:

from . . .
     input i
     . . .

Затем вы можете присоединиться к нему соответствующим образом.

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