在表列Oracle 10g中查找匹配的字符串

时间:2010-10-08 18:16:55

标签: regex plsql oracle10g

我正在尝试使用另一列中的值搜索表中的varchar2列以匹配字符串。被搜索的列允许自由格式文本,并允许不同长度的单词和数字。我想找到一个不是更大的文本和数字字符串的字符串。

示例:1234a应匹配“发票#1234a”但不匹配“发票#1234a567”

采取的步骤: 我已经尝试过Regexp_Like(table2.Searched_Field,table1.Invoice),但当发票号码有一个可以在其他发票号中找到的号码序列时,会收到很多错误点击。

1 个答案:

答案 0 :(得分:1)

建议:

  1. 仅在结束时匹配:

    REGEXP_LIKE(table2.Searched_Field, table1.Invoice || '$')
    
  2. 完全匹配:

    table2.Searched_Field = 'Invoice #' || table1.Invoice
    
  3. 仅在结束时与LIKE匹配:

    table2.Searched_Field LIKE '%' || table1.Invoice