7

価格で満たされた NVARCHAR(MAX) 列から先頭と末尾のスペースをクリアしようとしているところです (複数のオペレーティング システムから奇妙な文字を含むデータをインポートするために NVARCHAR を使用しています)。

この時点で、静的価格から先頭/末尾のスペースを削除できる t-sql コマンドがあります。ただし、この同じコマンドを利用してすべての価格を削除するとなると、困惑します。

特定の価格を削除するために使用した静的スクリプトは次のとおりです。

UPDATE *tablename* set *columnname* = LTRIM(RTRIM(2.50)) WHERE cost = '2.50 ';

末尾のスペースをすべて削除しようとしたのは次のとおりです。

UPDATE *tablename* set *columnname* LIKE LTRIM(RTRIM('[.]')) WHERE cost LIKE '[.] ';

また、ランダムな文字の % のさまざまなバリエーションを試しましたが、この時点では車輪を回転させています。

私が達成したいのは、実際の列データを変更せずに、この列の各セルの先頭と末尾のスペースをすべて削除する 1 つの簡単なコマンドを実行することです。

4

6 に答える 6

10

左/右からスペースを削除するには、LTRIM/RTRIM を使用します。あなたが持っていたもの

UPDATE *tablename*
   SET *columnname* = LTRIM(RTRIM(*columnname*));

すべての行で機能していたでしょう。更新する必要がない場合に更新を最小限に抑えるために、更新コードは変更されていませんが、WHERE 句の LIKE 式は

UPDATE [tablename]
   SET [columnname] = LTRIM(RTRIM([columnname]))
 WHERE 32 in (ASCII([columname]), ASCII(REVERSE([columname])));

注: 32 は、スペース文字の ASCII コードです。

于 2013-05-08T02:49:45.390 に答える
2

スペースを削除するには... LTRIM/を使用してくださいRTRIM

 LTRIM(String)
 RTRIM(String)

関数に渡される文字列パラメーターは、列名、変数、リテラル文字列、またはユーザー定義関数またはスカラー クエリの出力にすることができます。

SELECT LTRIM(' spaces at start')
SELECT RTRIM(FirstName) FROM Customers

続きを読む: http://rockingshani.blogspot.com/p/sq.html#ixzz33SrLQ4Wi

于 2014-06-02T07:27:32.103 に答える
1

LTrim 関数RTrim 関数:

  • 文字列変数から 先頭のスペースを削除するLTrim 関数と末尾のスペースを削除するRTrim関数。
  • Trim 関数を使用して、両方のタイプのスペースを削除します

                  select LTRIM(RTRIM(' SQL Server '))
    

    出力:

                             SQL Server
    
于 2016-09-30T11:09:11.780 に答える