[英]LTRIM usage with SQL server 2005
我有点SQL菜鸟,所以请原谅。 我似乎在任何地方都找不到LTRIM的用法示例。
我的表中有一个NVARCHAR列,其中许多条目都有前导空格-我想如果我运行它应该可以解决问题:
SELECT LTRIM( ColumnName)
From TableName;
这会达到预期的结果吗?
不,它将修剪前导空格,但不会修剪所有空白(例如回车)。
编辑似乎您正在寻找将删除前导和尾随空格的UPDATE
查询。
如果那只是说“正常”空格,那就用
UPDATE TableName
SET ColumnName = LTRIM(RTRIM(ColumnName ))
对于所有空白,都应该这样做(来自此处的注释 )。 首先备份您的数据!
UPDATE TableName
SET ColumnName =
SUBSTRING(
ColumnName,
PATINDEX('%[^ ' + char(09) + char(10) + char(13) + char(20) + ']%',
ColumnName),
LEN(ColumnName) - PATINDEX('%[^ ' + char(09) + char(10) + char(13) + char(20) + ']%'
, ColumnName) -
PATINDEX('%[^ ' + char(09) + char(10) + char(13) + char(20) + ']%',
REVERSE(ColumnName)) + 2)
您的示例将删除前导空格。 这只会从数据库中选择它。 如果您需要实际更改表中的数据,则需要编写UPDATE语句,例如:
UPDATE TableName
SET ColumnName = LTRIM(ColumnName)
如果需要从右侧删除空格,则可以使用RTRIM。
这是我经常引用的SQL Server 2005中的字符串函数的列表: http : //msdn.microsoft.com/zh-cn/library/ms181984(v=SQL.90).aspx
您运行它来找出答案吗? 这只是一个选择,不会破坏您的数据库。 但是,是的。
Select LTRIM(myColumn) myColumn
From myTable
应该返回myColumn
值,并删除所有前导空格。 请注意,这只是前导空格。
编辑要使用以上内容更新列,您需要执行以下操作:
Update myTable
Set myColumn = LTRIM(myColumn)
From myTable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.