`

oracle中判断字符串之间包含关系

阅读更多

今天遇到个问题.判断表中某一字段的值是否包含在一传入的变量中,或者某一字段值是不是包含指定的字符串,如果字段的值包含在变量中则返回结果.

测试如下:
程序会产生一个变量,判断字段"A" 是否包含在 "此变量"中
如果字段"A"的值包含在 "变量"中,则返回NAME值.
在此用到内置函数INSTR(CHAR1,CHAR2,m,n)

SQL> desc tmp_Test
     Name    Null?        Type        
     ------- -------- -------------
     A                    VARCHAR2(20)
     NAME             VARCHAR2(20)

SQL> select * from tmp_test;
    A       NAME  
    ------- -------
    1       test1
    2       test2


处理方法:
SQL> select name from tmp_test where instr('变量',a)>0;

例:
1.变量包含'1'而不包含'2'时:
SQL> select name from tmp_Test where instr('135',a)>0;

NAME
--------------------
test1

2.变量既包含'1' 又包含'2'时:
SQL> select name from tmp_Test where instr('1235',a)>0;

NAME
--------------------
test1
test2

3.变量既不包含'1'也不包含'2':
SQL> select name from tmp_Test where instr('35',a)>0;

no rows selected


INSTR(CHAR1,CHAR2,m,n)
    求CHAR2在CHAR1中从m位置起第n次出现的位置. m,n缺省值都为1,
    m>0时,表示从CHAR1左面--->右正向搜索
    m<0时,表示从CHAR1右面--->左反向搜索
    n,表示第几次出现

注意比较几次结果:
SQL> select instr('asfd9asfdksaf','fd',1,1) as result from dual;

    RESULT
-------------
         3

SQL> select instr('asfd9asfdksaf','fd',2,1) as result from dual;

    RESULT
-------------
         3

SQL> select instr('asfd9asfdksaf','fd',9,1) as result from dual;

    RESULT
-------------
         0

SQL> select instr('asfd9asfdksaf','fd',1,2) as result from dual;

    RESULT
----------
         8
[/size]
分享到:
评论

相关推荐

    oracle中文电子书

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其强大的功能和灵活性使得它在企业级应用中占据了重要地位。本文将围绕“Oracle中文电子书”这一主题,深入探讨Oracle数据库的关键知识点,尤其是书中涉及的...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     删除环境变量中的PATHT CLASSPATH中包含Oracle的值。  删除“开始”/“程序”中所有Oracle的组和图标。  删除所有与Oracle相关的目录,包括: C:\Program file\Oracle目录。 ORACLE_BASE目录。 C:\Documents ...

    Oracle 汉字拼音简码获取

    给定的代码片段展示了如何在Oracle数据库中创建一个名为`ZLSPELLCODE`的函数,用于获取汉字字符串的拼音简码。该函数接受两个参数:`v_InstrInVarchar2`表示输入的汉字字符串,`v_OutNumInInteger`则是一个可选参数...

    Oracle中常用的通配符

    - **含义**:表示任意长度的字符串,包括零长度。 - **示例**: - `SELECT * FROM table_name WHERE column_name LIKE '%abc%'`:查找所有包含“abc”的记录。 - `SELECT * FROM table_name WHERE column_name ...

    oracle与mysql的区别

    MySQL 日期字段分 DATE 和 TIME 两种,Oracle 日期字段只有 DATE,包含年月日时分秒信息,用当前数据库的系统时间为 SYSDATE,精确到秒,或者用字符串转换成日期型函数 TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)年-月...

    oracle日常函数文档

    在Oracle数据库中,处理字符串的函数非常丰富,如`SUBSTR()`, `INSTR()`, `UPPER()`, `LOWER()`等。`SUBSTR()`用于提取字符串的一部分,`INSTR()`用于查找子字符串在主字符串中的位置,而`UPPER()`和`LOWER()`则分别...

    Informix迁移至Oracle数据库的研究.pdf

    - WHERE子句中的条件判断,Oracle通常使用代替,并且在处理日期和字符串时,可能需要调整比较运算符和格式。 5. **异常处理**: - Oracle鼓励在每个程序块中包含异常处理机制,以确保错误能够被准确捕获和处理。...

    Oracle1.pdf

    在SQL中,字符串和日期值需要使用单引号括起来。 去重操作通过`DISTINCT`关键字实现,可以去除查询结果中的重复项。而排序操作则使用`ORDER BY`语句,可以对一个或多个字段进行升序或降序排列,注意在Oracle中,`...

    ORACLE函数大全CHM

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其强大的功能和灵活性在企业级应用中备受推崇。本资源“ORACLE函数大全CHM”显然是一个针对Oracle数据库中的各种函数的参考手册,旨在帮助开发者和DBA深入...

    Mysql+Oracle函数文档

    2. **字符串函数**:如 `CONCAT()`, `LEFT()`, `RIGHT()`, `REPLACE()`,用于处理字符串数据。 3. **日期/时间函数**:如 `NOW()`, `DATE_ADD()`, `TIMESTAMPDIFF()`,帮助处理日期和时间信息。 4. **聚合函数**:如...

    自己整理的Oracle常用高级语句.rar

    Oracle提供了大量的内置函数,涵盖了数值、字符串、日期时间、逻辑等各种类型的操作。文档中可能列举了这些函数的用途、语法和示例,帮助用户快速查找和理解。 4. **rank()函数**: RANK()函数用于对查询结果进行...

    oracle ebs开发文档

    - **SUBSTR函数**:用于从字符串中提取子串。 - **LPAD/RPAD函数**:用于在字符串左侧或右侧填充指定字符。 - **日期函数**:如 SYSDATE 和 ADD_MONTHS 等,用于日期时间的计算和转换。 - **随机取前10条不同的记录*...

    oracle性能优化、函数大全、傻瓜問題

    Oracle数据库中包含大量的内置函数,涵盖数值、字符串、日期、集合、系统等各类操作: 1. 数值函数:如ROUND、TRUNC、MOD等用于数值处理。 2. 字符串函数:如SUBSTR、INSTR、UPPER/LOWER、CONCAT等处理字符数据。 3...

    oracle从入门到精通.pdf

    8. **文本字符串处理**:如何在SQL语句中使用文本字符串。 9. **DISTINCT关键词**:用于消除重复记录,只显示唯一的记录。 **1.5 SQLPLUS与SQL的关系** 1. **SQLPLUS命令的功能**:SQL*Plus是Oracle提供的一款工具...

    oracle 学习笔记

    Oracle数据库是一类关系型数据库管理系统(RDBMS),由美国Oracle公司开发。Oracle数据库系统以其高度的可靠性、安全性、开放性和可移植性而著称,广泛应用于金融、电信、交通、制造等领域的业务系统中。在学习...

    Oracle安装及详细操作讲解

    日期查询时,必须将字符串转换为日期格式,如`SELECT * FROM TM_CONFIG_SERIAL_NUM WHERE DELETE_tag !=1 AND update_time &gt; to_date('2016/11/18 9:00:00','yyyy-mm-dd hh24:mi:ss') ORDER BY update_time DESC`。...

    DB2 与ORACLE的比对.docx

    - ORACLE 允许在 WHERE 子句中进行弱类型判断,如字符串与整型之间的比较。DB2 不支持这种行为,要求数据类型一致,否则会导致错误。在 DB2 中,若需要将字符串与整型比较,必须先进行显式的数据类型转换。 3. **`...

    Oracle Sql基础 Oracle Sql基础 Oracle Sql基础

    - 包括TO_CHAR(将数字或日期转换为字符串)、TO_NUMBER(将字符串转换为数字)等。 - **3.13 条件表达式** - CASE表达式用于实现多分支条件判断,而DECODE函数则类似于IF-THEN语句。 #### 四、从多表中查询数据 ...

    Oracle数据库经典学习教程

    - 常用函数包括:数学函数(如ABS、MOD)、字符串函数(如CONCAT、SUBSTR)、日期函数(如SYSDATE、MONTHS_BETWEEN)等。 - **本章总结** - 探讨了子查询的用法以及Oracle中的一些特殊特性,如伪列和内置函数。 ...

Global site tag (gtag.js) - Google Analytics