Проверьте наличие данного текста в таблице - PullRequest
0 голосов
/ 02 мая 2018

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

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

Как:

select * from finder(20004)

даст:

comp2211
comp2311
comp2411
comp2221

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

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

1 Ответ

0 голосов
/ 03 мая 2018

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

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

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

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

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

...