2

文字列の左右両方からスペースを取得するこの関数(TRIM_REPLACE)があります。ただし、途中でもトリミングされるように変更しようとしていますが、個別に行うよりも機能を組み合わせたいと思います。

:私が名前を持っているとしましょう

Input
--------------------------
Peter<space><space>Griffin

<space>上記の入力で1つの空白スペースを示します。

次のように、の追加スペースをトリミングしたいと思います。

Output
--------------------------
Peter<space>Griffin

ご覧のとおり、複数のスペースが1つのスペースに置き換えられています。

CREATE FUNCTION dbo.TRIM_REPLACE
(
    @STRING     VARCHAR(MAX)
)
RETURNS VARCHAR(MAX)
    BEGIN
        RETURN LTRIM(RTRIM(@STRING))  + REPLACE(@STRING, '  ',' ')  
    END
GO

どうすればこれを達成できますか?

4

1 に答える 1

9

スペースのペアのみが気になる場合は、を使用できます。。。

ltrim(rtrim(replace(@String, '  ', ' ')))

複数のスペースがある場合は、これをループに入れる必要があります。

while charindex('  ', @string) > 0
begin
    set @string = replace(@string, '  ', ' ');
end;
return ltrim(rtrim(@string));
于 2012-05-05T18:05:34.190 に答える