我有这个函数(TRIM_REPLACE)从字符串的右边和左边获取空格。但是,我试图修改它,以便它在中间修剪,但我宁愿结合功能而不是单独进行。
示例:假设我有一个名字
Input
--------------------------
Peter<space><space>Griffin
<space>
表示上述输入中有一个空格。
我想修剪一下额外的空间,看起来像这样:
Output
--------------------------
Peter<space>Griffin
正如您所看到的,多个空格被替换为单个空格。
CREATE FUNCTION dbo.TRIM_REPLACE
(
@STRING VARCHAR(MAX)
)
RETURNS VARCHAR(MAX)
BEGIN
RETURN LTRIM(RTRIM(@STRING)) + REPLACE(@STRING, ' ',' ')
END
GO
我如何做到这一点?
答案 0 :(得分:9)
如果你只关心空格对,你可以使用。 。
ltrim(rtrim(replace(@String, ' ', ' ')))
如果您可能有多个空格,则需要将其置于循环中:
while charindex(' ', @string) > 0
begin
set @string = replace(@string, ' ', ' ');
end;
return ltrim(rtrim(@string));