微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server – 如何使用LTRIM / RTRIM搜索和替换前导/尾随空格?

我正在尝试从充满价格的NVARCHAR(MAX)列中清除前导和尾随空格(由于从具有奇数字符的多个操作系统导入数据而使用NVARCHAR).

此时我有一个t-sql命令可以从静态价格中删除前导/尾随空格.但是,当谈到利用同样的命令去除所有价格时,我很难过.

这是我用来删除特定价格的静态脚本:

UPDATE *tablename* set *columnname* = LTRIM(RTRIM(2.50)) WHERE cost = '2.50 ';

这是我试图删除所有尾随空格:

UPDATE *tablename* set *columnname* LIKE LTRIM(RTRIM('[.]')) WHERE cost LIKE '[.] ';

我也尝试过%随机字符的不同变化,但此时我正在旋转我的车轮.

我希望实现的是运行一个简单的命令,该命令取消此列的每个单元格中的所有前导和尾随空格,而不修改任何实际的列数据.

解决方法

要从左/右删除空格,请使用LTRIM / RTRIM.你有什么
UPDATE *tablename*
   SET *columnname* = LTRIM(RTRIM(*columnname*));

会对所有行都有效.要在不需要更新时最小化更新,更新代码将保持不变,但WHERE子句中的LIKE表达式将是

UPDATE [tablename]
   SET [columnname] = LTRIM(RTRIM([columnname]))
 WHERE 32 in (ASCII([columname]),ASCII(REVERSE([columname])));

注意:32是空格字符的ascii代码.

原文地址:https://www.jb51.cc/mssql/74982.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐