加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:53:09 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试从充满价格的NVARCHAR(MAX)列中清除前导和尾随空格(由于从具有奇数字符的多个操作系统导入数据而使用NVARCHAR). 此时我有一个t-sql命令可以从静态价格中删除前导/尾随空格.但是,当谈到利用同样的命令去除所有价格时,我很难过. 这是我用来删除特定价
我正在尝试从充满价格的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代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读