修剪SQL Server 2008中的文本字符串

use*_*662 43 sql-server sql-server-2008

我在SQL Server 2008数据库中有一个表.该表有一个名为'Name'的nvarchar(256)列.不幸的是,此字段中的值包含额外的空格.例如,名称"Bill"实际上存储在表格中的"Bill"中.

我想更新此表中的所有记录以删除多余的空格.但是,我很惊讶地发现SQL没有TRIM功能.

如何一次更新所有记录以删除多余的空格?

谢谢!

Ron*_*erg 98

你有一个RTRIM和一个LTRIM功能.您可以将它们组合起来以获得所需的修剪功能.

UPDATE Table
SET Name = RTRIM(LTRIM(Name))
Run Code Online (Sandbox Code Playgroud)


mpe*_*row 16

您可以使用RTrim函数从右侧修剪所有空格.使用LTrim从左侧修剪所有空格.例如

UPDATE Table SET Name = RTrim(Name)
Run Code Online (Sandbox Code Playgroud)

或左右两侧修剪

UPDATE Table SET Name = LTrim(RTrim(Name))
Run Code Online (Sandbox Code Playgroud)

  • 嗯,这取决于内部实现语言.如果它是C/C++,那么LTRIM必须将字符串字符向左移动,而RTRIM只是将终止'\ 0'写在正确的位置.因此,RTRIM之后的LTRIM需要移动较少的字符.当然,从大局来看并不重要,但这仍然更有效,交换LTRIM和RTRIM的成本绝对是0. (3认同)