在SQL Server中,字符串截取函数主要有以下几种:
declare @str varchar(50)
set @str='abcdeBeforefghjkAfter'
select case when @str like '%Before%' then substring(@str,1,CHARINDEX('Before',@str)-2) else @str end ---截取Before前的字符串
select case when @str like '%Before%' then substring(@str,CHARINDEX('Before',@str)+6,len(@str)+6-CHARINDEX('Before',@str)) else null end---截取Before后的字符串
-
LEFT(string, length):
- 返回字符串左侧的指定数量的字符。
- 示例:
LEFT('abcdef', 3)
返回'abc'
。
-
RIGHT(string, length):
- 返回字符串右侧的指定数量的字符。
- 示例:
RIGHT('abcdef', 3)
返回'def'
。
-
LEN(string):
- 返回字符串的长度(以字符为单位)。
- 示例:
LEN('abcdef')
返回6
。
-
PATINDEX(pattern, string):
- 返回字符串中指定模式第一次出现的位置。
- 示例:
PATINDEX('%[^a]%', 'abcdef')
返回1
,因为b
是第一个非a
字符。
-
REPLACE(string, old_value, new_value):
- 返回一个新字符串,其中所有
old_value
都替换为new_value
。 - 示例:
REPLACE('abcdef', 'b', 'x')
返回acxdef
。
- 返回一个新字符串,其中所有
-
STUFF(string, start, length, replacement):
- 从字符串的指定位置开始,删除指定数量的字符,并替换为新的字符串。
- 示例:
STUFF('abcdef', 1, 3, 'xxx')
返回xxxef
。
-
SUBSTRING(string, start, length):
- 从字符串的指定位置开始,返回指定数量的字符。
- 示例:
SUBSTRING('abcdef', 1, 3)
返回abc
。
-
TRIM(string):
- 返回去除字符串两侧空格的字符串。
- 示例:
TRIM(' abc ')
返回abc
。
-
UPPER(string):
- 返回字符串的所有字符的大写形式。
- 示例:
UPPER('abc')
返回ABC
。
-
LOWER(string):
- 返回字符串的所有字符的小写形式。
- 示例:
LOWER('ABC')
返回abc
。
这些函数可以帮助您在SQL Server中处理和操作字符串数据。根据您的具体需求,您可以选择合适的函数来完成字符串截取和转换任务。