SQL Server 函数

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

语法

SUBSTRING(string, start, length) 

参数

string必填。 指定要从中提取的字符串。
start必填。 指定起始位置。
  • 如果start小于1,则返回的表达式将从第一个字符开始以及返回的字符数是 (start + length - 1) 之和或 0 中的最大值。
  • 如果 start 为大于字符串中的字符数,则返回零长度表达式。
请注意,字符串中的第一个位置以1开头。
length必填。 指定要提取的字符数。
  • 如果length为负数,则返回错误。
  • 如果start和length> 大于字符串中的字符数,则返回从start开始的整个字符串。

返回值

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

示例 1:

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

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

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

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

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

示例 2:

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

PhoneNumberEmpIDAddress
+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; 

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

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