Могу ли я использовать имя столбца таблицы в качестве аргумента поиска в 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
вместо ,
,