关于ORACLE中使用LIKE进行多字段模糊匹配的一种解决思路
2016-05-11 10:52
465 查看
在ORACLE使用过程中经常会碰到查询一张表里的相关信息而需要用多个字段对其中一列进行模糊匹配的情况,最常见的做法是使用or连接多个查询子语句。使用这个方法在匹配字段多时就会显得很繁琐且容易出错和遗漏。比如我工作中要在表A中查询对应列puinfo中前六位为以下选项的内容
122221
122226
122231
122236
122241
122246
122251
122256
122261
122211
122216
122201
122203
122227
122233
采用以上方法,查询语句就只能写成select * from A t where t.puinfo like '122221%' or t.puinfo like '122226%' or t.puinfo like '122231%' or .....
后面省略12个子语句。
我想提供的一种思路是这样的在oracle数据库里建一个临时表用于存储这些要匹配的字段,然后在查询语句里只让要匹配的列跟临时表的对应的这个字段进行匹配。例如我新建了一个临时表test 并在其puinfo列里存储了以上15个要用于匹配的字段。这样查询语句就可以写成select * from A t,test b where t.puinfo like b.puinfo||'%'
122221
122226
122231
122236
122241
122246
122251
122256
122261
122211
122216
122201
122203
122227
122233
采用以上方法,查询语句就只能写成select * from A t where t.puinfo like '122221%' or t.puinfo like '122226%' or t.puinfo like '122231%' or .....
后面省略12个子语句。
我想提供的一种思路是这样的在oracle数据库里建一个临时表用于存储这些要匹配的字段,然后在查询语句里只让要匹配的列跟临时表的对应的这个字段进行匹配。例如我新建了一个临时表test 并在其puinfo列里存储了以上15个要用于匹配的字段。这样查询语句就可以写成select * from A t,test b where t.puinfo like b.puinfo||'%'
相关文章推荐
- oracle迁移数据文件
- Oracle会话查询等
- ORACLE日期时间函数大全
- [SQL]-Oracle分组函数ROULLUP的应用
- sql server 与oracle数据互导的一种思路--sql server链接服务器
- ORACLE一直要输入set oracle_sid=xxx解决方法
- Centos 6 Oracle 11G 超详细安装
- oracle中导出导入表以及数据
- oracle 数据泵导入导出
- centos7安装oracle12c
- centos7安装oracle12c
- Oracle 增加临时表空间
- oralce 产生随机数
- oracle plsql 无法连接 报 ORA-12560: TNS:protocol adapter error
- oracle删除列
- ORACLE编程的套路——字符串分解
- Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
- Oracle命令和分页
- Oracle用户管理
- Oracle触发器