SQL Server函数(四):截取字符串指定字符

PATINDEX返回字符串在指定表达式中第一次出现的起始位置;如果在所有有效的文本和字符数据类型中都找不到该表达式,则返回零。
REVERSE返回字符串值的逆序排序形式。
SUBSTRING返回字符串指定位置内容。

---剔除字符串中第一个非字母或数字之前的字符
SELECT 
    CASE 
        WHEN PATINDEX('%[0-9a-zA-Z]%', ' ___553418___1') > 0 THEN
            SUBSTRING(' ___553418___1', PATINDEX('%[0-9a-zA-Z]%', ' ___553418___1'), LEN(' ___553418___1'))
        ELSE
           ' ___553418___1' -- 如果没有找到数字或字母,返回原字符串
    END AS TrimmedString
---剔除字符串中最后一个非字母或数字之后的字符
SELECT 
    CASE 
        WHEN len(' ___553418___1')-PATINDEX('%[0-9a-zA-Z]%', REVERSE(' ___553418___1')) > 0 THEN
            SUBSTRING(' ___553418___1', 1, len(' ___553418___1')-PATINDEX('%[0-9a-zA-Z]%', REVERSE(' ___553418___1'))+1)
        ELSE
            ' ___553418___' -- 如果没有找到数字或字母,返回原字符串
    END AS TrimmedString

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值