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

Oracle
Oracle数据库的使用技巧五则
Oracle数据库的启动和关闭方式
解决Oracle并行服务器的相关问题
SuSE Linux10上安装Oracle数据库方法
正确进行Oracle数据库性能完全保护
最影响Oracle系统性能的初始化参数
掌握MIS系统实例中Oracle的安全策略
深入了解Oracle数据库后台进程的功能
如何用Oracle创建实例的参数需求
Oracle非法数据库对象引起的错误
掌握Oracle数据库中sequence的用法
黑客狙击Oracle系统的八大常用套路
数据从MySQL迁移到Oracle的注意事项
使用utl_smtp从Oracle中发送电子邮件
Oracle操作中常见的错误和解决方法
Oracle数据库中sequence的用法
使Oracle数据库保持优良性能
Oracle数据库中的临时表用法
Oracle10gR2中调整user commit的方法
SQL Server 2005对DBA的要求是否会更高

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-31   浏览: 85 ::
收藏到网摘: 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] )