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 '[.] ';

我也为随机字符尝试了不同的 % 变化,但此时我正在旋转我的轮子。

我希望实现的是运行一个简单的命令,在不修改任何实际列数据的情况下删除该列每个单元格中的所有前导和尾随空格。

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 回答
1

我知道这个问题是针对 sql server 2012 的,但是如果 SQL Server 2017 或 SQL Azure 的场景相同,您可以Trim直接使用如下:

UPDATE *tablename*
   SET *columnname* = trim(*columnname*);
于 2017-08-05T16:22:06.373 回答
0
SELECT RTRIM(' Author ') AS Name;

输出将没有任何尾随空格。

姓名——————“作者”</p>

于 2017-03-10T11:26:02.533 回答
-1

用于删除前导空格的 LTrim 函数和用于从字符串变量中删除尾随空格的 RTrim 函数。它使用 Trim 函数来删除两种类型的空格以及字符串空格前后的意思。

SELECT LTRIM(RTRIM(REVERSE('下一级员工')))

于 2017-03-01T13:48:43.743 回答