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
廣告