Проверьте наличие данного текста в таблице

У меня есть кодовое название курса COMP2221.

У меня тоже есть функция finder(int) который может найти все коды, соответствующие определенному шаблону.

Подобно:

select * from finder(20004)

дам:

comp2211
comp2311
comp2411
comp2221

которые соответствуют шаблону comp2###,

Мой вопрос заключается в том, как аккуратно выразить "есть ли comp2221 в finder(20004)"?

1 ответ

Решение

Как выразить "аккуратно ли comp2221 в finder(20004)"?

Используйте EXISTS выражение и поставить тест в WHERE пункт:

SELECT EXISTS (SELECT FROM finder(20004) AS t(code) WHERE code = 'comp2221');

Возвращает один TRUE или же FALSE, Никогда NULL и никогда не более одной строки - даже если ваша табличная функция finder() возвращает дубликаты.

Или раскошелиться на функцию finder() интегрировать тест напрямую. Наверное, быстрее.

Другие вопросы по тегам