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

Oracle
Oracle Tuning技巧总结
如何选择Oracle优化器
如何使用Logmnr方法分析数据库日志
保持Oracle数据优良性能的若干诀窍
Oracle 10g R2ORA-3136 错误解决
Oracle中行迁移和行链接的清除及检测
不要忽视Oracle 10g STATSPACK
ORACLE性能调整--统计信息的迁移
用Oracle TimesTen加速Oracle数据库
在Oracle 10g中如何获得索引建议
Oracle中的SQL语句性能调整原则
Oracle Spatial新驱动的添加记录实例
在Linux系统下如何优化Oracle具体步骤
Oracle数据库删除两表中相同数据的方法
Oracle 容灾复制解决方案分析Shar Plex
oltp系统,数据块大小用4k还是8k好?
数据库中如何使用SQL查询连续号码段
在数据字典中直接修改表列的名称和顺序
讲解Oracle里抽取随机数的多种方法
使用一条SQL语句删除表中重复记录

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


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