2017-05-21 17 views
0

SQL Serverデータベースに列があり、レコードの左右の場所に空白があります。基本的にはnvarchar(250)の列です。SQL Serverの列から末尾の空白と空白を削除する

私は完全にこのように空白を削除しようとしている:

UPDATE MyTable 
SET whitespacecolumn = LTRIM(RTRIM(whitespacecolumn)) 

しかし、これがすべてではうまくいかなかった、空白はまだそこにあります。私はここで間違って何をしていますか?

+1

?トリムはスペースを削除するだけです。タブや他のタイプの空白ではありません。 –

+0

私はどのようなキャラクターであるかわからないが、このようなレコードの前に空いているスペースがある:(このスペースはここにある)username – User987

+0

@MartinSmithタブを削除する/入力する? – User987

答えて

1

以下を確認してください。

  1. フィールド値にchar(10)、char(13)などの特殊文字を見つける。
  2. ANSI_PADDING ONのステータスを確認します。このMSDNの記事を参照してください。
+0

これはそれでした、char(10)それは、thxだった! :) – User987

1

私が代わると思うあなたは

UPDATE MyTable SET whitespacecolumn = Replace(whitespacecolumn, ' ', '') 

を更新しようとしているとして、あなたが最初の選択をしてみてください、その後、LTRIM、RTRIMは、スペースを削除します

SELECT *, Replace(whitespacecolumn, ' ', '') from MyTable 

更新することを好むことができる方法であります列の前後にある。 2016年にあなたにも、特殊文字をトリミングするために、以下のようにTRIM機能を使用することができます。

SELECT TRIM('.,! ' FROM '#  test .') AS Result; 

出力:

空白は何文字
# test 
+0

'TRIM()'関数のサポートは、SQL Server 2017で利用できます。私が知る限り、SQL Server 2016またはそれ以降では利用できません。 https://docs.microsoft.com/en-us/sql/t-sql/functions/trim-transact-sql –

関連する問題