powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / EXISTS в перечислении полей SELECT
6 сообщений из 6, страница 1 из 1
EXISTS в перечислении полей SELECT
    #39473657
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую уважаемых коллег.

Такой вопрос. FB2.5. Можно ли как-нибудь вытянуть в список полей оператора SELECT признак существования записи/записей в справочной таблице без использования ХП? Пока приходит в голову только хватать COUNT со сравнением на клиенте, но ясен пень, что при больших выборках это неоптимально. Предикат EXISTS, увы, работает только за WHERE.
Код: sql
1.
SELECT (SELECT COUNT (T2F1) FROM T2 WHERE T2F2=T1.T1F0) FROM T1;
...
Рейтинг: 0 / 0
EXISTS в перечислении полей SELECT
    #39473658
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезный,

да ну. EXISTS возвращает BOOLEAN в 3.0.
А в 2.5 можно например вот так

CASE
WHEN EXISTS(...)
THEN 1
ELSE 0
END
...
Рейтинг: 0 / 0
EXISTS в перечислении полей SELECT
    #39473660
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, сейчас попробую.
...
Рейтинг: 0 / 0
EXISTS в перечислении полей SELECT
    #39473664
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё пошло. Так как у меня 2.5, сделал через CASE. При классическом EXISTS до WHERE без CASE 2.5 ругался, потому я собственно этот вопрос и задал.
...
Рейтинг: 0 / 0
EXISTS в перечислении полей SELECT
    #39473695
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезный,

можно просто "приджойнить слева" этот справочник, если поиск идет по уникальному для справочника значению (или, если в справочнике несколько таких значений - добавить distinct).
В некоторых случах такой способ работает быстрее, чем с exists. В некоторых.
...
Рейтинг: 0 / 0
EXISTS в перечислении полей SELECT
    #39473974
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

Если "по уникальному для справочника значению", то таких случаев как раз нет. Да и вообще для LEFT JOIN.
Они равны, ведь способ обращения к данным идентичен.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / EXISTS в перечислении полей SELECT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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