`

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学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

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

    会议管理系统数据库设计文档.doc

    由于系统需求分析中考虑到会议室和会 议设备间有一定的区别和联系,即会议室一般包含固定设备和移动设备,两者之间并不 是并列关系而是所属关系,所以将会议室默认含有固定设备,这样,设备只有移动设备 分开,并...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例070 判断字符串是否为数字 89 实例071 验证IP地址的有效性 90 实例072 鉴别非法电话号码 91 4.3 操作字符串 92 实例073 根据标点符号对字符串进行分行 92 实例074 将字符串的每个字符进行倒序输出 94 实例075 ...

    Java面试宝典2020修订版V1.0.1.doc

    35、MySQL、SqlServer、oracle写出字符存储、字符串转时间 52 36、update语句可以修改结果集中的数据吗? 53 37、oracle如何设置主键自动增长? 53 38、表连接、子查询的区别是什么?它们可以相互转化吗?你倾向于用...

    Java面试宝典2010版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 5、说明生活中遇到的二叉树,用java实现二叉树 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复...

    最新Java面试宝典pdf版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    Java面试笔试资料大全

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    JAVA面试宝典2010

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    Java面试宝典-经典

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    java面试题大全(2012版)

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    Java面试宝典2012版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名...

    java面试宝典2012

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 72 5、说明生活中遇到的二叉树,用java实现二叉树 73 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    Java面试宝典2012新版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

Global site tag (gtag.js) - Google Analytics