寻找db2文本函数或方法我可以做一个文本包含而不是像

时间:2014-11-17 02:25:15

标签: sql db2

我正在寻找一个包含搜索的文本的db2函数。目前我正在针对以下数据运行以下查询....

enter image description here

         SELECT distinct 
             s.search_id, 
             s.search_heading, 
             s.search_url 
         FROM repman.search s, repman.search_tags st
         WHERE s.search_id = st.search_id 
         AND ( UPPER(s.search_heading) LIKE (cast('%REPORT%' AS VARGRAPHIC(32))) 
                OR (UPPER(st.search_tag)  LIKE cast('%REPORT%' AS VARGRAPHIC(32))) 
              )
         ORDER BY s.search_heading;

返回......

enter image description here

但是,如果我将搜索文本更改为%REPORTS%而不是%REPORT%(我需要这样做),那么类似搜索不起作用,我得到的结果为零。

我读了一个使用名为CONTAINS的函数的链接,如下所示,但在尝试使用该函数时出现错误。

         SELECT distinct 
             s.search_id, 
             s.search_heading, 
             s.search_url 
         FROM repman.search s, repman.search_tags st
         WHERE s.search_id = st.search_id 
                     AND CONTAINS(s.search_heading, 'REPORTS') = 1

enter image description here

anynoe有什么建议吗?我在db2版本DB2 / LINUXPPC 9.1.6上。

由于

1 个答案:

答案 0 :(得分:1)

要在字符串中查找模式,可以使用正则表达式。从DB2 v9开始,它们是内置的DB2 with xQuery。还有其他方法可以做到这一点。我在我的博客中写了article(用西班牙语,你可以翻译)关于DB2中的正则表达式。

xmlcast(xmlquery('fn:matches(\$TEXT,''^[A-Za-z 0-9]*$'')')