Могу ли я использовать имя столбца таблицы в качестве аргумента поиска в db2 операторе "лайк" или "содержать"

У меня есть две таблицы: одна содержит столбец (описание), который я хотел бы искать, используя значения в столбце (ключевое слово) в другой таблице. Я хотел бы выполнить что-то вроде

select table1.description, tabl2.keyword,
case when
table1.description like `'''%'||table2.keyword||'%''' then 1
-- or contains(table1.description, table2.keyword)
else 
0
end
as found
from table1, table2

Документация для функции Container указывает, что параметр поиска (table2.keyword в моем случае) должен быть константой (я подозреваю, что "like" также имеет аналогичные ограничения).

Сообщения об ошибках, которые я получаю, указывают на это ограничение.

Есть ли решение, которое я могу использовать?

1 ответ

Вы можете сделать это с like, Ваш запрос должен работать:

select table1.description, tabl2.keyword,
       (case when table1.description like '''%'||table2.keyword||'%'''
             then 1 else 0
        end) as found
from table1 cross join table2;

Я предпочитаю явные соединения, cross join вместо ,,

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