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

SQLServerで先頭と末尾の文字を削除する方法

    SQL Serverでは、TRIM() 関数は通常、文字列から先頭と末尾の空白を削除するために使用されます。しかし、文字列の開始/終了から他の文字を削除することもできることをご存知ですか?空白である必要はありません。

    TRIM() スペース文字char(32)を具体的に削除するT-SQL関数です。 またはその他の指定された文字 文字列の最初または最後から。

    構文

    構文は次のようになります:

    TRIM ( [ characters FROM ] string )

    string 引数は必須の引数です–トリミングする実際の文字列です。

    characters FROM オプションの引数は、削除する文字を指定できるビットです(スペース文字を削除するだけではない場合)。どの文字を指定しないと、スペース文字がトリミングされます。

    これは、先頭と末尾の等号をトリミングする基本的な例です(= )文字列から:

    SELECT TRIM('=' FROM '=SPECIALS=') AS Result;

    結果

    Result  
    --------
    SPECIALS

    キャラクターの複数のインスタンス

    また、指定された文字の複数のインスタンスをトリミングします。

    例:

    SELECT TRIM('=' FROM '===SPECIALS===') AS Result;

    結果:

    Result  
    --------
    SPECIALS

    複数の文字のトリミング

    また、複数の文字をトリミングすることもできます。

    例:

    SELECT TRIM('!*=+?' FROM '=+=*!SPECIALS?=+=') AS Result;

    結果:

    Result  
    --------
    SPECIALS

    埋め込みホワイトスペース

    トリミングされた文字の内側に空白が存在する場合は、空白がトリミングされることを期待しないでください(トリミングする文字の1つとしてスペース文字を明示的に指定しない限り)。

    意味は次のとおりです:

    SELECT TRIM('=' FROM '=SPECIALS=') AS Result;

    結果:

    Result        
    --------------
       SPECIALS   
    

    この場合、等号はトリミングされますが、空白は残ります。これは、空白が文字列のすぐ左または右、あるいはその両方にないためです。

    等号の両方を削除したい場合 空白の場合は、トリミングする文字のリストにスペース文字を追加するだけです。

    SELECT TRIM('=' FROM '=SPECIALS=') AS Result;

    結果:

    Result  
    --------
    SPECIALS

    空白で囲まれた文字

    前の例と同様に、指定された文字と文字列の開始/終了の間に空白がある場合、SQLServerが指定された文字をトリミングすることは期待できません。

    例:

    SELECT TRIM('=' FROM '=SPECIALS=') AS Result;

    結果:

    Result          
    ----------------
       =SPECIALS=

    この例では、何もトリミングされていません。これは、等号と文字列の開始/終了の間に空白があるためです。

    この場合、トリミングする文字の1つとしてスペース文字を追加するだけです。

    SELECT TRIM('=' FROM '=SPECIALS=') AS Result;

    結果:

    Result  
    --------
    SPECIALS

    TRIM()の使用例については 文字列の左右から空白を削除するには、SQLServerで先頭と末尾の空白を削除する方法をご覧ください。


    1. SQL ServerでのISNUMERIC()のしくみ

    2. SQL ServerでMSDTCを有効にするにはどうすればよいですか?

    3. 1つのクエリで複数のテーブルに挿入

    4. IRI-Windocksテストデータベースリポジトリ