大约2年前,写过一篇《字符串中去除多余的空格保留一个(C#)https://www.cnblogs.com/insus/p/7954151.html

今天,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

Source Code

使用一个例子来说明:

最新文章

  1. exec
  2. 基础笔记5(file)
  3. [ArcEngine]Geotransformation地理变换
  4. 夺命雷公狗---微信开发53----网页授权(oauth2.0)获取用户基本信息接口(3)实现世界留言版
  5. 【BZOJ】【1269】【AHOI2006】文本编辑器editor
  6. stringstream实例
  7. 转载一个不错的Scrapy学习博客笔记
  8. BitMask 使用参考
  9. Benchmark与Profiler---性能调优得力助手
  10. Android: Fragment (Trying to instantiate a class that is not a Fragment)
  11. vue学习笔记 样式 class style(五)
  12. Apache常用配置
  13. 第一节mysql 安装
  14. Maven Install报错:Perhaps you are running on a JRE rather than a JDK?
  15. 非递归并查集——zoj4109
  16. Java当中的IO一
  17. Gatling实战(二)
  18. git format-patch制作内核补丁
  19. 【2】static 、construct
  20. 正点原子stm32f103mini版串口下载BOOT0引脚与与CH340G芯片引脚RTS、DTR、的关系原理

热门文章

  1. Centos安装ntfs
  2. sqoop导入增量数据
  3. php简单实现通讯录采集,我的第一个php,适合新手
  4. Codeforces 900D Unusual Sequences:记忆化搜索
  5. Winform中的dataGridView添加自动编号
  6. python字符串相关操作
  7. Android数据传递的五种方法汇总
  8. xcopy语法
  9. ACM学习历程—HDU4746 Mophues(莫比乌斯)
  10. bzoj 3545: [ONTAK2010]Peaks Kruskal重构树