zoukankan      html  css  js  c++  java
  • Oracle中INSTR函数,及在DB2、Sybase中与Instr函数功能相同的函数

    一、Oracle中INSTR函数

    INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 

    Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束。 

    语法如下:

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

     参数分析: string1 源字符串,要在此字符串中查找。 

    string2 要在string1中查找的字符串. 

    start_position 代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。 

    nth_appearance 代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。 

    注意: 如果String2在String1中没有找到,instr函数返回0. 

    示例: SELECT instr('syranmo','s') FROM dual; -- 返回 1 

    SELECT instr('syranmo','ra') FROM dual;  -- 返回 3 

    SELECT instr('syran mo','a',1,2) FROM dual;  -- 返回 0 

    (根据条件,由于a只出现一次,第四个参数2,就是说第2次出现a的位置,显然第2次是没有再出现了,所以结果返回0。注意空格也算一个字符!) 

    SELECT instr('syranmo','an',-1,1) FROM dual;  -- 返回 4 

    (就算是由右到左数,索引的位置还是要看‘an’的左边第一个字母的位置,所以这里返回4)

    SELECT instr('abc','d') FROM dual;  -- 返回 0 

    注:也可利用此函数来检查String1中是否包含String2,如果返回0表示不包含,否则表示包含。 

    二、DB2中,功能相同的函数:

    (1) LOCATE函数:

    语法:LOCATE(ARG1,ARG2,<POS>)

    解释:LOCATE函数在ARG2中查找ARG1第一次出现的位置,如果指定POS,则从ARG2的POS处开始查找ARG1第一次出现的位置。

     

    (2) POSSTR函数:

    语法:POSSTR(EXP1,EXP2)

    解释:POSSTR函数返回EXP2在EXP1中的位置。 

     

    三、Sybase IQ中,功能相同的函数:

    (1) CHARINDEX函数:

    CHARINDEX(char_expr,expression)

    返回指定char_expr在expression中的开始位置,否则为0

      

  • 相关阅读:
    How to change hostname on SLE
    How to install starDIct on suse OS?
    python logging usage
    How to reset password for unknow root
    How to use wget ?
    How to only capute sub-matched character by grep
    How to inspect who is caller of func and who is the class of instance
    How to use groovy script on jenkins
    Vim ide for shell development
    linux高性能服务器编程 (二) --IP协议详解
  • 原文地址:https://www.cnblogs.com/alexzp/p/3540136.html
Copyright © 2011-2022 走看看