所以,这与SQL LIKE Column Value Plus Wildcard DB2有关,但与操作系统更具体的问题b / c相关
所以,我想:
select a.columnA
b.columnZ
from a
join table b
on b.columnB LIKE a.columnA || '%'
b.columnB是一个索引,我希望使用它完成连接(b / c它是一个庞大的表)。但遗憾的是,z / OS不允许使用LIKE右侧的列。
从另一篇文章中,我发现我可以使用LOCATE,但它是一个标量函数,因此不符合第1阶段的谓词,所以我失去了索引的值。
答案 0 :(得分:0)
一种选择是使用范围谓词并将高值连接到范围高端的列值的末尾。这等同于谓词:
select a.columnA
b.columnZ
from a
join table b
on b.columnB >= a.columnA
and b.columnB < a.columnA || x'FF'
这是我经常使用的,我专门工作,以便能够像这样使用部分值匹配的索引。