【问题标题】:DB2 10 for z/OS where LIKE compare columns with wildchar '_'DB2 10 for z/OS 其中 LIKE 将列与通配符 '_' 进行比较
【发布时间】:2019-01-24 09:27:59
【问题描述】:

我需要像这样在 DB2 上进行选择:

SELECT * 
FROM Table1
WHERE col1 LIKE col2

问题是DB2不支持列之间的LIKE,因为第二个操作符必须是静态字符串。

我需要比较这样的字符串:'AABGYD' 和 'AA_G_D' 应该匹配。 我不能使用 REGEXP_LIKE 因为这个版本不支持。 能达到和其他运营商一样的效果吗?

【问题讨论】:

    标签: regex db2 sql-like


    【解决方案1】:

    我手头没有zDB2 可以测试,但它似乎支持fn:matches 功能。 以下内容对您有用吗?

    with t (col1, col2) as (
              select 'AABGYD', 'AA.G.D' from sysibm.sysdummy1
    union all select 'AAGYD', 'AA.G.D' from sysibm.sysdummy1
    )
    select *
    from t
    where xmlcast(xmlquery('fn:matches($s, $p)' passing col1 as "s", col2 as "p") as int)=1;
    

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      相关资源
      最近更新 更多