SQL - SUBSTRING() 函数



SQL 的SUBSTRING() 函数用于从字符串中检索子字符串(字符串的一部分)。

它接受三个参数expressionstartlength,并返回 SQL 服务器中字符、二进制、文本或图像表达式的部分内容。

如果 start 参数值为1,则表示表达式的第一个字符,如果 start 值为length-1,则表示最后一个字符。

注意 - start 和 length 参数的值必须以字符数指定,例如 ntext、char 或 varchar 数据类型,以及 text、image、binary 或 varbinary 数据类型使用的字节数。

语法

以下是 SQL SUBSTRING() 函数的语法:

SUBSTRING ( expression ,start , length )  

参数

  • expression - 它是一个字符、二进制、文本、ntext 和图像表达式。

  • start - 它是一个整数(或 bigint)值,指定返回字符串的起始位置

  • length - 它是一个正整数,指定返回字符串的长度。

返回值

此函数返回字符的一部分。

示例

在以下示例中,我们使用 SQL 的SUBSTRING() 函数从表达式‘Hello World’ 中检索从起始位置2 开始,指定长度为5 的字符部分。

SELECT SUBSTRING('Hello World', 2, 5) AS NEW_STRING;

输出

上述 SQL 查询产生以下输出:

+------------+
| NEW_STRING |
+------------+
| ello       |
+------------+

示例

如果我们将start 参数值作为负值传递给函数。

以下是SUBSTRING() 函数的另一个示例,如果 start 参数值小于1,则返回的表达式将从表达式中指定的第一个字符开始。在这种情况下,返回的字符数是 start + length- 10 的最大值。

SELECT SUBSTRING('TutorialsPoint', -1, 8) AS NEW_STRING;

输出

以下是上述查询的输出:

+------------+
| NEW_STRING |
+------------+
| Tutori     |
+------------+

示例

如果 start 参数值大于表达式长度。

在以下示例中,我们将 start 参数值作为大于给定表达式的值传递。如果 start 参数值大于 value 表达式中的字符数;否则返回零长度表达式。

SELECT SUBSTRING('Java Programming', 30, 5) AS NEW_STRING;

输出

上述程序生成以下输出:

+------------+
| NEW_STRING |
+------------+
|            |
+------------+

示例

您可以将表列名作为参数传递给SUBSTRING() 函数,以从表的FIRST_NAME 列中检索字符部分。假设我们使用CREATE 语句创建了一个名为Customers 的表,如下所示:

CREATE TABLE CUSTOMERS(    
ID INT NOT NULL,    
FIRST_NAME VARCHAR (20),
LAST_NAME VARCHAR(20),s
AGE INT NOT NULL,    
ADDRESS CHAR (25) ,    
SALARY DECIMAL (18, 2));

让我们使用 INSERT 语句将一些记录插入 Customers 表中,如下所示:

INSERT INTO CUSTOMERS VALUES (1, 'Rohan','Verma', 33, 'Hyderbad', 2100.00 ); 
INSERT INTO CUSTOMERS VALUES (2, 'Kamlesh','Kumar', 30, 'Lucknow', 2500.00 ); 
INSERT INTO CUSTOMERS VALUES (3, 'Seeta','Sharma', 23, 'Delhi', 3150.00 );

以下 SQL 查询从Customer 表的FIRST_NAME 列的内容中检索字符(子字符串)的一部分:

SELECT ID, FIRST_NAME, SUBSTRING(FIRST_NAME, 2, 5) AS NEW_NAME FROM CUSTOMERS;

输出

以下是上述 SQL 查询的输出:

+----+------------+----------+
| ID | FIRST_NAME | NEW_NAME |
+----+------------+----------+
|  1 | Rohan      | ohan     |
|  2 | Kamlesh    | amles    |
|  3 | Seeta      | eeta     |
+----+------------+----------+
sql-string-functions.htm
广告