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

大约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

 

使用一个例子来说明:

 

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐