Oracle多关键字查询
因项目需要,在某查询页面的查询字段支持多关键字查询,支持空格隔开查询条件,故实现如下:

使用的原理是:ORACLE中的支持正则表达式的函数REGEXP_LIKE,
'|' 指明两项之间的一个选择。例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的字符串。
'+' 匹配前面的子表达式一次或多次。
'( )' 标记一个子表达式的开始和结束位置。
select t.defect_phenomenon, t.defect_code, t.voltage_level
from sp_pd_Defect t
where (regexp_like(t.defect_phenomenon, '(杆塔|鸟巢)+') or
regexp_like(t.defect_code, '(杆塔|鸟巢)+') or
regexp_like(t.voltage_level, '(杆塔|鸟巢)+'));
如需要查询的关键字为“杆塔 鸟巢 110000”
select t.defect_phenomenon, t.defect_code, t.voltage_level
from sp_pd_Defect t
where (regexp_like(t.defect_phenomenon, '(杆塔|鸟巢|110000)+') or
regexp_like(t.defect_code, '(杆塔|鸟巢|110000)+') or
regexp_like(t.voltage_level, '(杆塔|鸟巢|110000)+'));
如图:

Oracle多关键字查询的更多相关文章
- oracle实现like多关键字查询
		
oracle实现like多关键字查询: select * from contract_info tt where 1=1 and REGEXP_LIKE(tt.contract_name,'关键字1| ...
 - oracle 实现多字段匹配一个关键字查询语句
		
oracle 实现多字段匹配一个关键字查询语句:有两种方法(经测试,10g中不能用,11g才行): 第一种. select * from table where ('字段名1' ||'字段名2' || ...
 - Sql for Oracle基本操作关键字
		
Sql for Oracle基本操作关键字 +SQL TOP子句 TOP 子句用于规定要返回的记录的数目 SELECT column_name(s) FROM table_name WHERE ROW ...
 - MySql/Oracle树形结构查询
		
Oracle树形结构递归查询 在Oracle中,对于树形查询可以使用start with ... connect by select * from treeTable start with id='1 ...
 - Oracle锁表查询和解锁方法
		
数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remov ...
 - oracle锁表查询
		
ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 复制代码代码如下: --锁表查 ...
 - php多关键字查询
		
php单一关键字查询 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 tdansitional//EN" "http: ...
 - Oracle Minus关键字
		
Oracle Minus关键字 SQL中的MINUS关键字 SQL中有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果 ...
 - Oracle DBA常用查询
		
Oracle DBA常用查询 –1. 查询系统所有对象select owner, object_name, object_type, created, last_ddl_time, timestamp ...
 
随机推荐
- 创建android phonegap项目
			
一. 首先需要在Eclipse中创建一个Android项目 打开Eclipse,打开File->New->Project 选择Android Application Project点击Ne ...
 - Scala Sublime text 3 Build 编译
			
使用Sublime text 3编译Scala 在sublime工具栏中[tools]->[Build System]->[new Build System]添加如下文本 { " ...
 - 【转】Android学习系列–App离线下载功能实现
			
原文:http://www.cnblogs.com/qianxudetianxia/archive/2011/07/20/2108965.html 宜未雨而绸缪,毋临渴而掘井.----朱用纯<治 ...
 - 基于.NET Socket Tcp的发布-订阅框架
			
基于.NET Socket Tcp的发布-订阅框架 一.分布式消息总线 在很多MIS项目之中都有这样的需求,需要一个及时.高效的的通知机制,即比如当使用者A完成了任务X,就需要立即告知使用者B任务X已 ...
 - 更新部分字段 NHibernate
			
更新部分字段 NHibernate 概述: 在有些情况下,我只想更新记录中的一个字段的值.比如:浏览完这条记录后,我把其中的是否浏览置为1. Nhibernate中提供了Native SQL,其中有一 ...
 - 自己动手实现Expression翻译器 – Part Ⅲ
			
上一节实现了对TableExpression的解析,通过反射创建实例以及构建该实例的成员访问表达式生成了一个TableExpression,并将其遍历格式化为”Select * From TableN ...
 - beanutils中WrapDynaBean
			
public class Emp { private String firstName="李"; private String lastName; public ...
 - 支付宝集成时的InvalidKeySpecException
			
近来在集成第三方支付---支付宝,在集成的过程中严格按照支付宝开发者平台所发布的说明文档和Demo,在我的测试机上可以完美的运行,但是在别人的手机无论怎么就是调用不起来,总是弹出"remot ...
 - javascript继承之借用构造函数与原型
			
javascript继承之借用构造函数与原型 在js中,关于继承只有利用构造函数和原型链两种来现实.以前所见到的种种方法与模式,只不过是变种罢了. 借用构造函数 1 2 3 4 5 6 7 8 9 1 ...
 - 2014.3.12-C语言小测试
			
测试代码: 学号:1402049 1.请实现一个函数,功能为使用循环输出以下的图案 void print_alpha(int n) { int i, j; for(i=0;i<n;++i){ f ...