六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 80|回复: 0

在db2中替换like的办法

[复制链接]

升级  34%

86

主题

86

主题

86

主题

举人

Rank: 3Rank: 3

积分
302
 楼主| 发表于 2013-1-13 18:19:33 | 显示全部楼层 |阅读模式
like谓词可以用posstr标准函数替换,具体做法就是将a like '%b%' 替换为 posstr(a,'b')>0.
由于我在视图上like所以极慢,所以我用posstr快很多。但是like对索引还是很有效果的。

下面是oracle的函数
1.%a%方式:
select * from pub_yh_bm t
where instr(t.chr_bmdm,'2')>0
等份于:
select * from pub_yh_bm t
where t.chr_bmdm like '%2%'

2.%a方式:
select * from pub_yh_bm t
where instr(t.chr_bmdm,'110101')=length(t.chr_bmdm)-length('110101')+1
等份于:
select * from pub_yh_bm t
where t.chr_bmdm like '%110101'
3.a%方式:
select * from pub_yh_bm t
where instr(t.chr_bmdm,'11010101')=1
等份于:
select * from pub_yh_bm t
where t.chr_bmdm like '11010101%'
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表