问答 查看内容
返回列表

为什么用函数trim无法去掉字符串后面的空格

178 1
发表于 2025-12-29 14:30:56 | 查看全部 阅读模式
在ETL里新建计算字段,无论用函数trim还是rtrim,都无法去除字符串后面的空格

评论1

观小凡楼主Lv.9 发表于 2025-12-29 14:37:12 | 查看全部
1. 建议先用函数 ASCII(RIGHT([字符串],1)) 检查下字符串末尾的空格ASCII值是多少。
      平时我们用键盘输入的空格的ASCII值是32,如果空格ASCII值为160,其实是不间断空格(non-breaking space),就是页面上的 所产生的空格。这种空格的作用就是在页面换行时不被打断,如下:
  1. 页面某一行的末尾是一个人名Zhang Xiaoming
复制代码
     我们希望在换行时人名不会被打断,不希望Zhang 在第一行末尾,而Xiaoming跑到第二行开头,而是保持完整的人名在同一行的末尾,于是就有了不间断空格。(在word中也有这种空格的使用)
如果使用了平常的空格,就会被页面压缩,变成下边这样:
  1. 页面某一行的末尾是一个人名Zhang
  2. Xiaoming
复制代码
     不间断空格有个问题,就是它无法被 trim()所裁剪,也无法被正则表达式的 \s 所匹配,也就是说,无法像裁剪寻常空格那样移除这个不间断空格。

2. 可以利用不间断空格的Unicode编码来移除它,其编码为\u00A0。参考函数用法:
  1. REGEXP_REPLACE([字符串],'\\u00A0+','')
复制代码

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2026 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去回复 去发帖 返回顶部
快速回复 返回顶部 返回列表