DB2 10 for Z / OS,SQL LIKE Column Value Plus Wildcard DB2没有丢失第1阶段

时间:2013-10-25 19:51:26

标签: sql db2 zos

所以,这与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阶段的谓词,所以我失去了索引的值。

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'

这是我经常使用的,我专门工作,以便能够像这样使用部分值匹配的索引。