SQL字符串匹配函数

Microsoft SQLServer

CHARINDEX

语法
CHARINDEX (expressionToFind ,expressionToSearch [ , start_location])

参数
expressionToFind

包含要查找的序列的字符表达式。 expressionToFind 最多包含 8000 个字符。

expressionToSearch

要搜索的字符表达式。

start_location

表示搜索起始位置的 integerbigint 表达式。如果未指定 start_location,该参数为负数或 0,则从 expressionToSearch 开头开始搜索。

返回类型

如果 expressionToSearch 具有 varchar(max)nvarchar(max)varbinary(max) 数据类型,则返回 bigint;否则,返回 int;如果没有找到需要找的字符串,则返回 0

示例

  • CHARINDEX('Java', 'Thinking in Java')
    返回:13

  • CHARINDEX('Java', 'Thinking in Java',13)
    返回:13

  • CHARINDEX('Java', 'Thinking in Java',14)
    返回:0

  • CHARINDEX('Think', 'Thinking in Java')
    返回:1

Oracle

INSTR

语法
INSTR(string1, string2[ , start_position[ , nth_appearence]])

参数
string1

要在此字符串中查找。

string2

要在string1中查找的字符串。

start_position

从string1开始查找的位置。可选,默认为1,正数时,从左到右搜索,负数时,从右到左搜索。

nth_appearence

查找第几次出现string2。可选,默认为1,不能为负。

说明

如果 expressionToSearch 具有 varchar(max)nvarchar(max)varbinary(max) 数据类型,则返回 bigint;否则,返回 int;如果没有找到需要找的字符串,则返回 0

示例

  • SELECT INSTR('Java','J') FROM DUAL;  
    返回:1

  • SELECT INSTR('Java','a') FROM DUAL;
    返回:2

  • SELECT INSTR('Java','e') FROM DUAL;
    返回:0

  • SELECT INSTR('Java','a', 1, 2) FROM DUAL;
    返回:4

MySQL

LOCATE、POSITION、INSTR

语法
LOCATE(substr,str)

POSITION(substr IN str)

INSTR(str, substr)

参数
str

要在此字符串中查找。

substr

要在str中查找的字符串。

说明

如果没有找到需要找的字符串,则返回 0 ,如果找到则返回值>=1。

示例

  • SELECT LOCATE('Java', 'Thinking in Java');  
    返回:13

  • SELECT POSITION('Java' IN 'Thinking in Java');
    返回:13

  • SELECT INSTR('Thinking in Java', 'Java');
    返回:13

  • SELECT INSTR('Thinking in Java', 'C++');
    返回:0

Java

indexOf

str.indexOf(substr)
参数
str

要在此字符串中查找。

substr

要在str中查找的字符串。

说明

如果substr在str中未找到需要找的字符串,则返回 -1,如果找到返回值>=0。

示例

public static void main(String[] args) {
    System.out.println(instr("Thinking in Java", "Think"));
    System.out.println(instr("Thinking in Java", "Java"));
    System.out.println(instr("Thinking in Java", "in"));
    System.out.println(instr("Thinking in Java", "C++"));
}

public static int instr(String str, String substr) {
    return str.indexOf(substr);
}`

返回:
0
12
2
-1

你可能感兴趣的:(SQL字符串匹配函数)