SQL Server函数(一)--字符串截取

在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后的字符串
  1. LEFT(string, length)

    • 返回字符串左侧的指定数量的字符。
    • 示例:LEFT('abcdef', 3) 返回 'abc'
  2. RIGHT(string, length)

    • 返回字符串右侧的指定数量的字符。
    • 示例:RIGHT('abcdef', 3) 返回 'def'
  3. LEN(string)

    • 返回字符串的长度(以字符为单位)。
    • 示例:LEN('abcdef') 返回 6
  4. PATINDEX(pattern, string)

    • 返回字符串中指定模式第一次出现的位置。
    • 示例:PATINDEX('%[^a]%', 'abcdef') 返回 1,因为b是第一个非a字符。
  5. REPLACE(string, old_value, new_value)

    • 返回一个新字符串,其中所有old_value都替换为new_value
    • 示例:REPLACE('abcdef', 'b', 'x') 返回 acxdef
  6. STUFF(string, start, length, replacement)

    • 从字符串的指定位置开始,删除指定数量的字符,并替换为新的字符串。
    • 示例:STUFF('abcdef', 1, 3, 'xxx') 返回 xxxef
  7. SUBSTRING(string, start, length)

    • 从字符串的指定位置开始,返回指定数量的字符。
    • 示例:SUBSTRING('abcdef', 1, 3) 返回 abc
  8. TRIM(string)

    • 返回去除字符串两侧空格的字符串。
    • 示例:TRIM(' abc ') 返回 abc
  9. UPPER(string)

    • 返回字符串的所有字符的大写形式。
    • 示例:UPPER('abc') 返回 ABC
  10. LOWER(string)

    • 返回字符串的所有字符的小写形式。
    • 示例:LOWER('ABC') 返回 abc

这些函数可以帮助您在SQL Server中处理和操作字符串数据。根据您的具体需求,您可以选择合适的函数来完成字符串截取和转换任务。

SQL Server中,你可以使用LEFT()、RIGHT()和SUBSTRING()函数来截取字符串。LEFT()函数用于从字符串的左边开始截取指定个数的字符,RIGHT()函数用于从字符串的右边开始截取指定个数的字符,SUBSTRING()函数用于从字符串的中间截取指定长度的字符。 例如,如果你想要截取字符串'SqlServer_2014'的前3个字符,你可以使用LEFT()函数,如下所示: ``` SELECT LEFT('SqlServer_2014', 3) ``` 这将返回结果'Sql'。 如果你想要截取字符串'SqlServer_2014'的后4个字符,你可以使用RIGHT()函数,如下所示: ``` SELECT RIGHT('SqlServer_2014', 4) ``` 这将返回结果'2014'。 如果你想要从字符串'SqlServer_2014'的第4个字符开始截取长度为6的字符,你可以使用SUBSTRING()函数,如下所示: ``` SELECT SUBSTRING('SqlServer_2014', 4, 6) ``` 这将返回结果'Server'。 所以,根据你的需求,你可以选择使用LEFT()、RIGHT()或SUBSTRING()函数来截取字符串。 #### 引用[.reference_title] - *1* *2* *3* [sql server提供三种常用截取字符串方法,LEFT()、RIGHT()、SUBSTRING()](https://blog.csdn.net/Mark_Luo123/article/details/128653346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值