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で先頭と末尾の空白を削除する方法をご覧ください。