sql >> データベース >  >> RDS >> Sqlserver

SQLServerで文字列から空白文字を削除する方法

    ASCII(RIGHT(ProductAlternateKey, 1))を使用する 行2の右端の文字は、改行またはASCII文字10であることがわかります。

    これはできません 標準のLTrimを使用して削除します RTrim 関数。

    ただし、(REPLACE(ProductAlternateKey, CHAR(10), '')を使用することはできます。

    また、キャリッジリターンとタブを考慮することもできます。これらの3つ(改行、キャリッジリターン、タブ)は通常の原因であり、次の方法で削除できます:

    LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(ProductAlternateKey, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')))
    

    上記では削除できない「空白」文字が他にある場合は、以下の1つまたはすべてを試してください。

    --NULL
    Replace([YourString],CHAR(0),'');
    --Horizontal Tab
    Replace([YourString],CHAR(9),'');
    --Line Feed
    Replace([YourString],CHAR(10),'');
    --Vertical Tab
    Replace([YourString],CHAR(11),'');
    --Form Feed
    Replace([YourString],CHAR(12),'');
    --Carriage Return
    Replace([YourString],CHAR(13),'');
    --Column Break
    Replace([YourString],CHAR(14),'');
    --Non-breaking space
    Replace([YourString],CHAR(160),'');
    

    この潜在的な空白文字のリストは、次のような関数を作成するために使用できます:

    Create Function [dbo].[CleanAndTrimString] 
    (@MyString as varchar(Max))
    Returns varchar(Max)
    As
    Begin
        --NULL
        Set @MyString = Replace(@MyString,CHAR(0),'');
        --Horizontal Tab
        Set @MyString = Replace(@MyString,CHAR(9),'');
        --Line Feed
        Set @MyString = Replace(@MyString,CHAR(10),'');
        --Vertical Tab
        Set @MyString = Replace(@MyString,CHAR(11),'');
        --Form Feed
        Set @MyString = Replace(@MyString,CHAR(12),'');
        --Carriage Return
        Set @MyString = Replace(@MyString,CHAR(13),'');
        --Column Break
        Set @MyString = Replace(@MyString,CHAR(14),'');
        --Non-breaking space
        Set @MyString = Replace(@MyString,CHAR(160),'');
    
        Set @MyString = LTRIM(RTRIM(@MyString));
        Return @MyString
    End
    Go
    

    次のように使用できます:

    Select 
        dbo.CleanAndTrimString(ProductAlternateKey) As ProductAlternateKey
    from DimProducts
    


    1. LinuxでMySQLまたはMariaDBのルートパスワードを変更する方法

    2. MySQL:日付で前の行と次の行を含むIDで行を選択

    3. Rails 3 ActiveRecord:関連付けをカウントして並べ替え

    4. クッキートークン認証ログイン方式