我需要像这样在DB2上进行选择:
SELECT *
FROM Table1
WHERE col1 LIKE col2
问题在于DB2不支持列之间的LIKE,因为第二个运算符必须是静态字符串。
我需要比较类似的字符串:'AABGYD'和'AA_G_D'应该匹配。 我无法使用REGEXP_LIKE,因为此版本不支持。 可以和其他运营商达成类似的目标吗?
答案 0 :(得分: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;