ITXiaoCaiJi 2024-06-18 20:12 采纳率: 28.6%
浏览 0

Qlik处理文本‘000000039011019837’怎么做?

Qlik如何将文本‘000000039011019837’变成‘39011019837’?

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-18 20:12
    关注

    引自免费微信小程序:皆我百晓生

    在Qlik Sense或QlikView中,处理文本数据并移除前导零是一个常见的需求,尤其是在处理数字ID、电话号码或其他数字序列时。对于你提到的特定情况,即从文本'000000039011019837'中去除所有前导零,可以采用以下几种方法:

    方法一:使用Right()函数

    Qlik提供了Right()函数,可以用来截取字符串右端的部分字符。首先,你需要确定字符串的总长度,然后减去前导零的数量(这可能需要额外步骤来计算),但更简单的方法是结合Len()While表达式来直接获取非零部分。

    代码示例:

    =Right(YourField, Len(YourField) - (Len(YourField) - Len(RTrim(YourField, '0'))))
    

    这里YourField应替换为你的实际字段名。

    方法二:使用Trim()函数变体

    虽然Qlik的Trim()函数主要用于删除字符串两端的空格,但可以通过一些巧妙的操作实现去除前导零的效果。通过将字符串转换为数字再转回字符串,可以自动去掉前导零。

    代码示例:

    =Num(YourField, '#')
    

    这里'#'表示任意数字格式,将自动去除前导零。

    方法三:使用正则表达式

    如果Qlik环境支持正则表达式,那么可以使用Replace()函数结合正则表达式来移除前导零。

    代码示例:

    =Replace(YourField, '^0+', '')
    

    这里的'^0+'是一个正则表达式,表示匹配字符串开始处的一个或多个零。

    方法四:使用If()Left()函数组合

    另一种方法是使用If()函数检查字符串的每个字符是否为零,直到找到第一个非零字符,然后使用Left()函数截取从该字符开始的剩余部分。

    代码示例:

    =If(Left(YourField, 1) = '0', Right(YourField, Len(YourField)-1), YourField)
    

    这个表达式可能需要递归调用自身或使用循环结构来完全去除所有前导零,但在某些情况下,简单的单次应用也可能足够。

    结论

    上述任何一种方法都可以有效地去除文本中的前导零,选择哪种取决于你的具体需求和对Qlik函数的熟悉程度。推荐尝试Num(YourField, '#'),因为它最简洁且直接。如果需要处理更复杂的字符串模式,正则表达式可能是一个更强大的工具。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月18日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?