繁体   English   中英

LTRIM在SQL Server 2005中的使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM