Oracle Text CONTAINS()查询返回所有行

时间:2018-03-13 16:27:05

标签: oracle oracle-text

如何编写返回索引中所有行的Oracle文本查询(CONTAINS查询)?

我试过这个:

select * from table t 
where contains(t.column, '%', 1) > 0

但是这不会返回任何行。是否有匹配所有行的模式?

1 个答案:

答案 0 :(得分:0)

如果您要查找匹配所有行的查询,则可以简单地使用“ 1 = 1”谓词来简化比较运算符,如下所示:

select * from table t where 1 > 0;

通常情况下,默认搜索需要返回所有行,而带有关键字的搜索应使用contains检查行。

因此,我使用CASE语句进行条件搜索:

SELECT * FROM table t where 
(CASE WHEN :keyword IS NOT NULL THEN contains(t.column, :keyword, 1) 
ELSE 1 END) > 0;

希望这会有所帮助!