SQLite 函数

SQLite SUBSTRING() 函数用于从指定位置开始的字符串中提取子字符串。

SUBSTR() 函数是 SUBSTRING() 函数的同义词。

语法

SUBSTRING(string, start, length) 

参数

string必填。 指定要从中提取的字符串。如果它是字符串,则字符索引引用实际的 UTF-8 字符。如果它是 BLOB,则索引引用字节。
start必需。 指定起始位置。它可以是正数也可以是负数。
  • 如果是正数,则该函数从字符串的开头提取。
  • 如果是负数,则该函数从字符串的末尾提取.
请注意,字符串中的第一个位置以 1 开头。
length可选。 指定要提取的字符数。如果省略,将返回整个字符串(从 start 位置开始)。如果它是负数,则返回 start 字符之前的ABS(length)字符。

返回值

返回从指定字符串中提取的子字符串。

示例1:

下面的示例显示了SUBSTRING() 函数。

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

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

SELECT SUBSTRING('Yxjc123.com', 6, 6);
Result: '12.com'

SELECT SUBSTRING('Yxjc123.com', 6, -5);
Result: 'Yxjc1'

SELECT SUBSTRING('Yxjc123.com', -4, 4);
Result: '.com'

SELECT SUBSTRING('Yxjc123.com', -4, -6);
Result: 'xjc123' 

示例 2:

考虑一个名为 Employee 的数据库表,其内容如下记录:

Phone_NumberEmpIDAddress
+33-1479961011Grenelle, Paris, France
+31-2011503192Geuzenveld, Amsterdam, Netherlands
+86-10997324583Yizhuangzhen, Beijing, China
+65-672348244Yishun, Singapore
+81-3577990725Koto City, Tokyo, Japan

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

SELECT *, SUBSTRING(PhoneNumber, 2, 2) AS CountryCode 
FROM Employee; 

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

Phone_NumberEmpIDAddressCountryCode
+33-1479961011Grenelle, Paris, France33
+31-2011503192Geuzenveld, Amsterdam, Netherlands31
+86-10997324583Yizhuangzhen, Beijing, China86
+65-672348244Yishun, Singapore65
+81-3577990725Koto City, Tokyo, Japan81