相关疑难解决方法(0)

在T-SQL中用一个空格替换重复的空格

我需要确保一个给定的字段在字符之间没有多个空格(我不关心所有空格,只关心空格).

所以

'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的解决方案.

思考?

t-sql sql-server

95
推荐指数
7
解决办法
10万
查看次数

如何组合修剪和替换功能以删除字符串中的任何位置?

我有这个函数(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)

我该如何做到这一点?

sql t-sql sql-server-2008

2
推荐指数
1
解决办法
9544
查看次数

标签 统计

t-sql ×2

sql ×1

sql-server ×1

sql-server-2008 ×1