web-dev-qa-db-ja.com

単一のステートメントで列のすべての値をトリミングすることは可能ですか?

Id列(identity、int)とName列(varchar(250))を持つ(MS)SQLデータベースにテーブルがあります。ただし、名前列の値には、「他の何か」から切り取って貼り付けられたと思うので(かなりランダムに)前後のスペースが含まれます(何もわかりません!)。

T-SQLで次のことを実行できますか?

update MyTable set Name = trim(name)

そして、トリミングされた値ですべての名前列を更新していますか?

20
BlueChippy

MS SQLにはトリム機能がありません。 rTrimとlTrimを一緒に使用する必要があります。

update MyTable set Name = lTrim(rTrim(name))
60
Barry Jordan

試して

update MyTable set Name = LTRIM(RTRIM((name))
9
StuartLC

これを試すことができます:

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

here を見て、データベース内に関数を作成し、より速く使用する

3
Marco

SQL ServerにはRTRIMLTRIMのみがありますが、両方を一緒に使用できます。

update MyTable set Name = RTRIM(LTRIM((name))
2
cjk

これを試して:

UPDATE [table] SET [column1] = REPLACE([column1],'i:0#.w|',' ')

1
silentgut

まったくそうではありません-使用可能なTRIM()関数がないので、RTRIM()LTRIM()(それぞれ右トリムと左トリム)を使用する必要があります。

UPDATE MyTable set Name = rtrim(ltrim(name))
0
Widor