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

发布于 2024-09-26 20:54:10 字数 265 浏览 5 评论 0原文

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

示例:1234a 应匹配“Invoice #1234a”,但不匹配“Invoice #1234a567”

采取的步骤: 我尝试过 Regexp_Like(table2.Searched_Field,table1.Invoice) 但当发票编号具有可在其他发票编号中找到的编号序列时,会出现许多错误命中。

I am trying to search a varchar2 column in a table for matching strings using the value in another column. The column being searched allows free form text and allows words and numbers of different lengths. I want to find a string that is not part of a larger string of text and numbers.

Example: 1234a should match "Invoice #1234a" but not "Invoice #1234a567"

Steps Taken:
I have tried Regexp_Like(table2.Searched_Field,table1.Invoice) but get many false hits when the invoice number has a number sequence that can be found in other invoice numbers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随梦而飞# 2024-10-03 20:54:10

建议:

  1. 仅在末尾匹配:

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

    table2.Searched_Field = '发票#' ||表1.发票
    
  3. 仅在末尾匹配 LIKE:

    table2.Searched_Field LIKE '%' ||表1.发票
    
)
  • 完全匹配:

  • 仅在末尾匹配 LIKE:

  • Suggestions:

    1. Match only at end:

      REGEXP_LIKE(table2.Searched_Field, table1.Invoice || '
      
    2. Match exactly:

      table2.Searched_Field = 'Invoice #' || table1.Invoice
      
    3. Match only at end with LIKE:

      table2.Searched_Field LIKE '%' || table1.Invoice
      
    )
  • Match exactly:

  • Match only at end with LIKE:

  • ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文