欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

字符串中去除多余的空格保留一个(C#)

程序员文章站 2022-05-03 23:07:57
大约2年前,写过一篇《字符串中去除多余的空格保留一个(C#)》https://www.cnblogs.com/insus/p/7954151.html 今天,Insus.NET使用MS SQL Server来实现相同的功能。现Insus.NET已经把它写成一个自定义函数。 SET ANSI_NULL ......

大约2年前,写过一篇《字符串中去除多余的空格保留一个(c#)

今天,insus.net使用ms sql server来实现相同的功能。现insus.net已经把它写成一个自定义函数。

set ansi_nulls on
go
set quoted_identifier on
go
-- =============================================
-- author:      insus.net
-- create date: 2019-05-13
-- update date: 2019-05-13
-- description: 保留一个空格
-- =============================================
create function [dbo].[svf_leave_a_space] 
( 
    @inputstring nvarchar(max)
) 
returns nvarchar(max)
as
begin
    declare @index int = 1
    declare @currentchar char(1)
    declare @previouschar char(1)
    declare @str nvarchar(max) = n''

    while @index <= len(@inputstring)
    begin
        set @currentchar = substring(@inputstring, @index, 1)
        set @previouschar = substring(@inputstring, @index - 1, 1)

        if @currentchar != ' ' or @currentchar != @previouschar                
            set @str = @str + cast(@currentchar as nvarchar(max))

        set @index = @index + 1
    end
    return @str
end
go

 

使用一个例子来说明: