当前位置: 首页 > 图文教程 > 数据库 > Oracle > 使用Instr()与decode()进行多条件组合查询

Oracle
解决Oracle 9i和Tomcat端口冲突
Oracle JOB的建立,定时执行任务
ORA-01562 和 ORA-01628 问题解决
oracle startup时 ORA-00600错误解决
解决Oracle处理中文乱码的一种方法
用Oracle10g列值掩码技术隐藏敏感数据
如何解决JOB的Interval输入参数过长
理解物化视图刷新过程中出现的约束冲突
Oracle数据库如何查询记录时给记录加锁
两种方法分析每月工作日计算程序
如何避免Oracle数据库密码出现@符号
在Oracle中使用登录触发器初始化用户会话
Oracle数据库中的数据出错的解决办法
Oracle11.2 命令行手工最简创建数据库的过程
Oracle 语句优化分析说明
ORACLE 常用函数总结(80个)
从Oracle 表格行列转置说起
EXECUTE IMMEDIATE用法小结
Oracle 创建用户及数据表的方法
oracle 在一个存储过程中调用另一个返回游标的存储过程

Oracle 中的 使用Instr()与decode()进行多条件组合查询


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-31   浏览: 65 ::
收藏到网摘: n/a

    系统中遇到了要处理多条件组合查询的情况,好比说有4个独立的条件,那么组合出的查询条件便有24种,不可能写24条Sql语句再分别指定给24种组合情况吧,条件数再多点呢,人都会搞疯的。。。。于是我求助于高手,获得了使用instr()和decode()函数的实现方法。

    下面先说明一下instr()的功能和语法:(函数的语法是从http://www.techonthenet.com/oracle/functions/index.htm处得到的,相当清晰明了:)

In Oracle/PLSQL, the instr function returns the location of a substring in a string.

The syntax for the instr function is:

instr (string1, string2, [start_position], [nth_appearance])

string1 is the string to search.

string2 is the substring to search for in string1.

start_position is the position in string1 where the search will start.  This argument is optional.  If omitted, it defaults to 1.  The first position in the string is 1.  If the start_position is negative, the function counts back start_position number of characters from the end of string1 and then searches towards the beginning of string1.

nth_appearance is the nth appearance of string2.  This is optional.  If omiited, it defaults to 1.

再说明一下decode()的功能和语法:

In Oracle/PLSQL, the decode function has the functionality of an IF-THEN-ELSE statement.

The syntax for the decode function is:

decode ( expression , search , result [, search , result]... [, default] )