一、SubString函數概述
SubString函數是SQL Server中的字元串函數之一,用於返回字元串的子串。SubString函數的語法如下:
substring (expression, start, length)
expression:要截取的字元串。start:指定要截取的子串的起始位置。length:指定要截取的子串長度。
二、SubString函數用法舉例
1. 從指定位置開始,返回原字元串剩餘字元
SELECT SUBSTRING('abcdef', 3, 4) AS Result;
上述代碼返回的結果是 “cdef”。因為從’a’ 到 ‘c’ 的距離是 2,開始位置是 3,所以返回從 ‘c’到結尾的剩餘字元。
2. 返回字元串的前幾個字元
SELECT SUBSTRING('abcdef', 1, 3) AS Result;
上述代碼返回的結果是 “abc”。表示原字元串中從位置 1 開始取 3 個字元。
3. 返回字元串的後幾個字元
SELECT SUBSTRING('abcdef', 4, 3) AS Result;
上述代碼返回的結果是 “def”,表示從位置 4 開始取 3 個字元。
4. 使用變數指定要截取的字元串
DECLARE @name varchar(100) = 'Hello World'
SELECT SUBSTRING(@name, 1, 5) AS Result;
上述代碼返回的結果是 “Hello”,表示從變數 @name 的第一個字元開始,截取 5 個字元。
5. 截取列中的子串
CREATE TABLE Employee (
Id INT PRIMARY KEY,
Name VARCHAR(100)
)
INSERT INTO Employee VALUES (1, 'Tom Hanks');
INSERT INTO Employee VALUES (2, 'John Doe');
INSERT INTO Employee VALUES (3, 'Jane Doe');
SELECT SUBSTRING(Name, 1, 3) AS Result FROM Employee;
上述代碼返回的結果是:
Res
---
Tom
Joh
Jan
表示從”Name”列中取每個字元串的前三個字元。
三、SubString函數注意事項
1.當起始位置指定為負數時
如果向SubString函數提供的參數是負數,則該函數將返回 null。例如:
SELECT SUBSTRING('abcdef', -2, 3) AS Res;
上述代碼返回的結果是 null。
2.當指定的長度超出字元串長度時
如果指定長度參數大於原字元串長度,則該函數將返回整個字元串。例如:
SELECT SUBSTRING('abcdef', 3, 10) AS Res;
上述代碼返回的結果是”abcdef”。因為指定長度參數 10 比原字元串長度 6 長,所以返回整個字元串。
3.當起始位置加上長度超過字元串長度時
如果指定起始位置和長度之和大於原字元串長度,則該函數將返回起始位置之後剩餘的所有字元。例如:
SELECT SUBSTRING('abcdef', 4, 10) AS Res;
上述代碼返回的結果是”def”,因為指定的起始位置和長度之和為 4 + 10 = 14,而原字元串長度為 6,所以函數返回從起始位置 4 開始到字元串結尾的所有字元。
原創文章,作者:TNPWQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372310.html