Oracle просмотр или с оговоркой - PullRequest
0 голосов
/ 06 февраля 2020

Есть ли разница между oracle view и предложением WITH? Я спрашиваю об этом, потому что я написал SQL, используя предложение WITH. Поведение, которое я наблюдаю, когда SQL в предложении WITH не дает мне согласованного вывода.

Например, предложение SQL внутри предложения WITH должно генерировать 20 записей и предоставлять эти 20 записей другому. SQL. Я наблюдаю тенденцию, что когда-нибудь 20 записей, а иногда 18 или 17 и даже 14. При ручном запуске этого SQL я получаю 20 записей.

with subject as (
    select subject_id
    from report_card
    where card_id = 100
)
select *
from student stud,
     subject s
where s.subject_id = stud.subject_id;

Чтобы преодолеть мою проблему, я подумал написать предложение WITH заявление в виде.

TIA

1 Ответ

0 голосов
/ 06 февраля 2020

Вывод вашего запроса зависит от этого условия s.subject_id = stud.subject_id и, я думаю, из-за этого он меняется. Может быть совпадений записей в предметной таблице меньше.

Вы также можете использовать следующий запрос для получения того же вывода.

select r.subject_id,s.* from report_card r join subject s on 
s.subject_id = r.subject_id and r.card_id=100;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...