我可以在db2&#34中使用表列名作为搜索参数;比如"或"包含"运营商/功能

时间:2014-03-16 15:51:47

标签: sql 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

Contain函数的文档似乎表明搜索参数(在我的情况下是table2.keyword)必须是一个常量(我怀疑"喜欢"也有类似的约束)。

我得到的错误消息似乎表明了这种约束。

我有可以使用的解决方案吗?

1 个答案:

答案 0 :(得分: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而不是,