admin 管理员组

文章数量: 887021


2024年1月18日发(作者:random java)

sqlserver substring函数用法

SQL Server的SUBSTRING函数是一个字符串函数,用于提取一个字符串中指定位置的子字符串。它是在SELECT、INSERT、UPDATE和DELETE语句中使用的。它是从指定的起始位置开始提取字符串中的字符,并返回从指定的起始位置开始的指定长度的字符。如果没有指定子字符串的长度,SUBSTRING函数将返回从指定位置开始的所有字符。

SUBSTRING函数的语法如下:

```

SUBSTRING(string, start, length)

```

- string是要从中提取子字符串的原始字符串。

- start是从中提取子字符串的起始位置。

- length是要提取的子字符串的长度。

下面是一些SUBSTRING函数用法的示例:

1. 提取字符串中的一部分

```

SELECT SUBSTRING('Hello World', 7, 5)

```

这将返回“World”,因为它从字符串的第7个字符(W)开始提取5个字符。

2. 使用变量作为参数

```

DECLARE @String VARCHAR(50) = 'Goodbye World'

DECLARE @Start INT = 8

DECLARE @Length INT = 5

SELECT SUBSTRING(@String, @Start, @Length)

```

这将返回“World”,因为它从字符串的第8个字符(W)开始提取5个字符。

3. 提取字符串的一部分作为列值

```

SELECT FirstName, SUBSTRING(LastName, 1, 3) AS Initials

FROM Employees

```

这将返回一个名为“Initials”的列,其中包含每个员工姓氏的前三个字符。

4. 提取字符串中的最后一个单词

```

DECLARE @String VARCHAR(100) = 'The quick brown fox'

SELECT SUBSTRING(@String, LEN(@String) - CHARINDEX(' ',

REVERSE(@String)) + 2, LEN(@String))

```

这将返回“fox”,因为它是字符串中的最后一个单词。5. 使用CASE语句根据子字符串的值选择不同的值

```

SELECT ProductName,

CASE SUBSTRING(ProductCode, 1, 1)

WHEN 'A' THEN 'Category A'

WHEN 'B' THEN 'Category B'

ELSE 'Unknown'

END AS Category

FROM Products

```

这将返回一个名为“Category”的列,其中包含每个产品的分类。如果产品代码以“A”开头,则将其归类为“Category A”,如果以“B”开头,则将其归类为“Category B”,否则将其归类为“Unknown”。

总之,SUBSTRING函数是一个非常有用的函数,可以帮助您从指定的起始位置开始提取字符串中的字符,并返回从指定的起始位置开始的指定长度的字符。这是SQL编程中不可或缺的一部分。


本文标签: 字符串 指定 提取