去掉字符串前后指定的字符串的SQL函数
创始人
2024-07-13 07:31:19
0

如果前后分隔符号过多,计算就不够准确,下面为您介绍的SQL函数用来去掉字符串前后指定的字符串,供您参考,希望对您学习SQL函数使用有所启迪。

去掉前导字符串
CREATE FUNCTION Ltrimstring
               (@string NVARCHAR(4000),--原始字符串
                @trimStr NVARCHAR(50))--要去掉的前导字符串
RETURNS NVARCHAR(4000)
AS
BEGIN
set @string =isnull(@string ,'')--2010.05.14更改
--当原始字符串长度>0就检查前导字符串是否出现在原始字符串前面
    WHILE (Len(@string) > 0)
      BEGIN
        IF LEFT(@string,Len(@trimStr)) = @trimStr
          BEGIN
               --如果出现了前导字符串就将忽略前导字符串,从字符串尾部开始截取原始字符串,长度为原始字符串的长度-前导字符串的长度
            SET @string = RIGHT(@string,Len(@string) - Len(@trimStr))
          END
        ELSE
            --如果原始字符串前面没有出现相匹配的前导字符串则中断循环
          BREAK
      END
    RETURN @string
END
GO#p#


去掉尾部字符串

CREATE FUNCTION Rtrimstring
               (@string NVARCHAR(4000),
                @trimStr NVARCHAR(50))
RETURNS NVARCHAR(4000)
AS
BEGIN
set @string =isnull(@string ,'')--2010.05.14更改
    WHILE (Len(@string) > 0)
      BEGIN
        IF RIGHT(@string,Len(@trimStr)) = @trimStr
          BEGIN
          --与去掉前导字符串函数正好相反,截取的时候是从左侧截取,从而忽略尾部的匹配字符串
            SET @string = LEFT(@string,Len(@string) - Len(@trimStr))
          END
        ELSE
          BREAK
      END
    RETURN @string
END#p#

--去掉首尾指定的字符串--2010.05.14更改
create function TrimString (@string NVARCHAR(4000),--原始字符串
                @trimStr NVARCHAR(50))--要去掉的前导字符串
RETURNS NVARCHAR(4000)
AS
BEGIN
set @string=isnull( @string,'');
--当原始字符串长度>0就检查前导字符串是否出现在原始字符串前面
    if (Len(@string) > 0)
      BEGIN
        set @string=dbo.rtrimstring( dbo.ltrimstring(@string,@trimstr),@trimstr)
      END
    RETURN @string
END

这2个函数只能去掉前导或尾部字符串,不能去掉中间匹配的字符串

如 ',,,我再,,,测试,,,',如果选择去掉前后‘,,,’,则结果是‘我再,,,测试’,因为去掉中间的可以用Replace()来实现

使用演示
declare @string nvarchar(500),@trimString nvarchar(500)
select @string=',,,我再,,,测试,,,',@trimString=','
print dbo.LTrimString(@string,@trimString)
print dbo.RTrimString(@string,@trimString)
print dbo.LTrimString(dbo.RTrimString(@string,@trimString),@trimString)
--依次输出
我再,,,测试,,,
,,,我再,,,测试
我再,,,测试

 

 

【编辑推荐】

输入小写金额,输出大写金额的SQL函数写法

基于时间SQL函数详解

教您使用SQL中的TRUNC函数

SQL中表变量的不足

详解SQL中循环结构的使用

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...