Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PL SQL: запрос с EXISTS - почему после Select`а идет "1"? В чем смысл?

Дмитрий Митяев Ученик (5), закрыт 4 года назад
SELECT ce.zone,
count(distinct ce.ceid) cases
FROM kollecto.collection_entities ce
where exists (select 1 from tver.activitycc_rep ar where ce.ceid=ar.ceid and nvl(ar.sum_payment,0)<>0)
group by ce.zone
order by ce.zone;
Лучший ответ
Jurijus Zaksas Искусственный Интеллект (420327) 4 года назад
Смысл в том, что что-то там написать надо согласно синтаксису, а константа работает быстрее, чем что-либо другое.
Вообще в данном случае смысел применения неявного джойна лично от меня несколько ускользает, по-моему его можно заменить явным:

SELECT ce.zone,
count(distinct ce.ceid) cases
FROM kollecto.collection_entities ce
INNER JOIN tver.activitycc_rep ar
ON ce.ceid=ar.ceid
WHERE nvl(ar.sum_payment,0)<>0)
group by ce.zone
order by ce.zone;
Дмитрий МитяевУченик (5) 4 года назад
Смысл применения неявного джоина мало того, что "ускользает", так оно еще и тормозит жутко, например на Sybase... Более-менее работает только в Oracle
Дмитрий МитяевУченик (5) 4 года назад
А там в этом точно будет INNER JOIN? Не LEFT?

А NOT EXISTS на что заменять в подобном случае?
Остальные ответы
Федор Новиков Искусственный Интеллект (350408) 4 года назад
вместо 1 можно писать имя поля таблицы или *, потому что интересует просто наличие строк в результате запроса
Похожие вопросы