删除字段内容中的尾随空格

bdh*_*har 9 sql t-sql sql-server sql-server-2000 trim

我使用的是SQL Server MSDE 2000.我有一个名为notesnvarchar(65)的字段.

内容是"Something",在所有记录中的内容(为清晰起见)之后留有额外空格.我使用了以下命令.

UPDATE TABLE1 
   SET notes = RTRIM(LTRIM(notes))
Run Code Online (Sandbox Code Playgroud)

但它不起作用.有没有其他方法可以做到这一点?

OMG*_*ies 11

你确定查询不起作用吗?尝试:

SELECT TOP 100 '~'+ t.notes +'~'
  FROM TABLE1 t
Run Code Online (Sandbox Code Playgroud)

TOP 100将结果限制在前100行,足以让人知道输出中是否真的有空格.如果有,并且RTRIM/LTRIM没有删除它 - 那么你没有处理空格字符.在这种情况下,请尝试:

UPDATE TABLE1
  SET notes = REPLACE(notes, 
                      SUBSTRING(notes, PATINDEX('%[^a-zA-Z0-9 '''''']%', notes), 1), 
                      '')
WHERE PATINDEX('%[^a-zA-Z0-9 '''''']%', notes) <> 0
Run Code Online (Sandbox Code Playgroud)

  • 前32个值是非打印控制字符,例如回车符(十进制值13)和换行符(十进制值10):http://www.csgnetwork.com/asciiset.html (2认同)