SQLite 函数

SQLite INSTR() 函数返回字符串 X 中字符串 Y 第一次出现的位置。如果在字符串 X 中找不到 Y,则此函数返回 0 .

如果传递的参数都是 BLOB,则 INSTR(X,Y) 返回比 Y 第一次出现之前的字节数多 1 的字节数,如果 Y 没有出现在 X 内的任何位置,则返回 0。

如果两个参数都非 NULL 并且不是 BLOB,则两者都被解释为字符串。如果 INSTR(X,Y) 中 X 或 Y 为 NULL,则结果为 NULL。

语法

INSTR(X, Y) 

参数

X必填。 指定要搜索的值。
Y必填。 指定要在 X 中搜索的值。

返回值

返回字符串 X 中字符串 Y 第一次出现的位置

示例 1:

下面的示例显示了 INSTR() 函数的用法。

SELECT INSTR('Yxjc123.com', 'Y');
Result: 1

SELECT INSTR('Yxjc123.com', '123');
Result: 5

SELECT INSTR('Yxjc123.com', '.com');
Result: 8

SELECT INSTR('Yxjc123.com', 'j');
Result: 3

SELECT INSTR('Yxjc123.com', 'b');
Result: 0

SELECT INSTR('Yxjc123.com', 'ABC');
Result: 0 

示例 2:

考虑一个名为 Employee 的数据库表,其中包含以下记录:

Phone_NumberEmpIDAddress
+1-80540980001Brooklyn, New York, USA
+33-1479961012Grenelle, Paris, France
+31-2011503193Geuzenveld, Amsterdam, Netherlands
+86-10997324584Yizhuangzhen, Beijing, China
+65-672348245Yishun, Singapore
+81-3577990726Koto City, Tokyo, Japan

在下面的查询中,INSTR()函数用于从PhoneNumber列记录中提取国家/地区代码.

SELECT *, SUBSTR(PhoneNumber, 1, INSTR(PhoneNumber, '-') - 1) AS CountryCode 
FROM Employee; 

这将产生如下所示的结果:

PhoneNumberEmpIDAddressCountryCode
+1-80540980001Brooklyn, New York, USA+1
+33-1479961012Grenelle, Paris, France+33
+31-2011503193Geuzenveld, Amsterdam, Netherlands+31
+86-10997324584Yizhuangzhen, Beijing, China+86
+65-672348245Yishun, Singapore+ 65
+81-3577990726Koto City, Tokyo, Japan+81