2011-12-08 10 views

答えて

0

私が知っている機能はありません。あなた自身を作ることは、このように見えるかもしれません。

create function NormalizeSpace(@S nvarchar(max)) returns nvarchar(max) 
as 
begin 
    set @S = replace(@S, nchar(9), N' ') 
    set @S = replace(@S, nchar(10), N' ') 
    set @S = replace(@S, nchar(13), N' ') 

    while charindex(N' ', @S) > 0 
    begin 
    set @S = replace(@S, N' ', N' ') 
    end 
    return rtrim(ltrim(@S)) 
end 

更新:

はこれを行うにはより高速な方法(無whileループ)のためのJeff Modenすることで、この記事を見てください: REPLACE Multiple Spaces with One

create function NormalizeSpace(@S nvarchar(max)) returns nvarchar(max) 
as 
begin 
    set @S = replace(@S, nchar(9), N' ') 
    set @S = replace(@S, nchar(10), N' ') 
    set @S = replace(@S, nchar(13), N' ') 

    set @S = replace(@S, N' ', N' '+nchar(7)) 
    set @S = replace(@S, nchar(7)+N' ', N'') 
    set @S = replace(@S, nchar(7), N'') 

    return rtrim(ltrim(@S)) 
end 
関連する問題