SQL SUBSTRING() 函数

SQL SUBSTRING() 函数

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

它接受三个参数 表达式起始位置长度 ,并返回 SQL 服务器中字符、二进制、文本或图像表达式的一部分。

如果起始位置参数的值为 1 ,表示表达式的第一个字符;如果起始位置的值为 长度-1 ,则表示最后一个字符。

注意 :起始位置和长度参数的值必须使用字符数来指定,例如 ntext、char 或 varchar 数据类型,以及用于文本、图像、二进制或 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       |
+------------+

示例

如果我们将 开始 参数的值设为 负值 传递给函数。

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

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

输出

以下是上述查询的输出−

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

示例

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

以下示例中,我们将start参数的值设置为大于给定表达式的长度。如果start参数的值大于值表达式中的字符数;否则将返回一个零长度的表达式。

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程