是否可以在单个语句中修剪列中的所有值?

时间:2011-10-18 07:29:24

标签: sql tsql trim

我在(MS)SQL数据库中有一个表,它有一个Id列(identity,int)和一个Name列(varchar(250))。 但是,name列中的值包含(相当随机的)前导和尾随空格,因为我认为它们是从“其他内容”剪切和粘贴的(不知道是什么!)。

在T-SQL中是否可以执行以下操作:

update MyTable set Name = trim(name)

并让它更新所有带有修剪值的Name列?

8 个答案:

答案 0 :(得分:58)

MS SQL没有修剪功能。你需要一起使用rTrim和lTrim。

update MyTable set Name = lTrim(rTrim(name))

答案 1 :(得分:9)

尝试

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

答案 2 :(得分:3)

你可以试试这个:

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

看看here在数据库中创建一个函数,以便更快地使用它

答案 3 :(得分:2)

在SQL Server中,只有RTRIMLTRIM,但您可以同时使用它们:

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

答案 4 :(得分:1)

试试这个:

<script type="text/ng-template" id="custom-template.html"> <!-- your custom template should be here --> </script>

答案 5 :(得分:0)

不完全 - 没有TRIM()功能可用,因此您必须使用RTRIM()LTRIM()(分别为右侧和左侧修剪):

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

答案 6 :(得分:0)

SQL Server 2017 (14.x) 及更高版本有 TRIM() 函数,所以;

UPDATE MyTable set Name = TRIM(name)

会正常工作。或者在我的情况下,我也想在修剪后清空空字段。

UPDATE MyTable set Name = NULLIF(TRIM(name), '')

答案 7 :(得分:0)

如果您希望为空情况返回空字符串,请检查 isnull

 UPDATE MyTable set Name = rtrim(ltrim(IsNull(name,'')))
相关问题