Asy*_*ous 2 sql t-sql sql-server-2008
我有这个函数(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)
我该如何做到这一点?
如果你只关心空格对,你可以使用...
ltrim(rtrim(replace(@String, ' ', ' ')))
Run Code Online (Sandbox Code Playgroud)
如果您可能有多个空格,则需要将其置于循环中:
while charindex(' ', @string) > 0
begin
set @string = replace(@string, ' ', ' ');
end;
return ltrim(rtrim(@string));
Run Code Online (Sandbox Code Playgroud)