我需要确保一个给定的字段在字符之间没有多个空格(我不关心所有空格,只关心空格).
所以
'single spaces only'
Run Code Online (Sandbox Code Playgroud)
需要变成
'single spaces only'
Run Code Online (Sandbox Code Playgroud)
以下不起作用
select replace('single spaces only',' ',' ')
Run Code Online (Sandbox Code Playgroud)
因为它会导致
'single spaces only'
Run Code Online (Sandbox Code Playgroud)
我更喜欢坚持使用原生T-SQL而不是基于CLR的解决方案.
思考?
我有这个函数(TRIM_REPLACE)从字符串的右侧和左侧获取空格.但是,我试图修改它,以便它在中间修剪,但我宁愿结合功能,而不是单独做它.
示例:假设我有一个名字
Input
--------------------------
Peter<space><space>Griffin
Run Code Online (Sandbox Code Playgroud)
<space> 在上面的输入中指出一个空格.
我想修剪一下额外的空间,看起来像这样:
Output
--------------------------
Peter<space>Griffin
Run Code Online (Sandbox Code Playgroud)
如您所见,多个空格被替换为单个空格.
CREATE FUNCTION dbo.TRIM_REPLACE
(
@STRING VARCHAR(MAX)
)
RETURNS VARCHAR(MAX)
BEGIN
RETURN LTRIM(RTRIM(@STRING)) + REPLACE(@STRING, ' ',' ')
END
GO
Run Code Online (Sandbox Code Playgroud)
我该如何做到这一点?