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_Number | EmpID | Address |
---|---|---|
+1-8054098000 | 1 | Brooklyn, New York, USA |
+33-147996101 | 2 | Grenelle, Paris, France |
+31-201150319 | 3 | Geuzenveld, Amsterdam, Netherlands |
+86-1099732458 | 4 | Yizhuangzhen, Beijing, China |
+65-67234824 | 5 | Yishun, Singapore |
+81-357799072 | 6 | Koto City, Tokyo, Japan |
在下面的查询中,INSTR()函数用于从PhoneNumber列记录中提取国家/地区代码.
SELECT *, SUBSTR(PhoneNumber, 1, INSTR(PhoneNumber, '-') - 1) AS CountryCode
FROM Employee;
这将产生如下所示的结果:
PhoneNumber | EmpID | Address | CountryCode |
---|---|---|---|
+1-8054098000 | 1 | Brooklyn, New York, USA | +1 |
+33-147996101 | 2 | Grenelle, Paris, France | +33 |
+31-201150319 | 3 | Geuzenveld, Amsterdam, Netherlands | +31 |
+86-1099732458 | 4 | Yizhuangzhen, Beijing, China | +86 |
+65-67234824 | 5 | Yishun, Singapore | + 65 |
+81-357799072 | 6 | Koto City, Tokyo, Japan | +81 |