You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Informatica中使用INSTR和SUBSTR获取最后一个|之后的数据

解决Informatica中提取最后一个|后年份的问题

我来帮你搞定这个问题!你之前的逻辑应该是默认了固定数量的分隔符,所以才会在只有一个|的格式上出错。其实我们只需要动态定位最后一个|的位置,不管字符串里有多少个分隔符,都能准确截取到年份。

核心思路

利用Informatica INSTR函数的反向查找特性——它支持从字符串末尾开始搜索指定字符,这样就能精准找到最后一个|的位置,再用SUBSTR截取该位置之后的内容即可。

具体表达式

假设你的输入字段名为date_input,直接用下面的表达式就能解决问题:

SUBSTR(date_input, INSTR(date_input, '|', -1, 1) + 1)

参数解释

  • INSTR(date_input, '|', -1, 1)
    • -1 表示从字符串的最后一个字符开始向前查找
    • 1 表示查找第1次出现的|(也就是整个字符串里的最后一个|
    • 这个函数会返回最后一个|在字符串中的位置索引(Informatica中字符串索引从1开始)
  • +1 是为了跳过这个|,从它的下一个字符开始截取,直到字符串末尾,得到的就是我们需要的年份。

验证示例

  • 对于格式1 05|12|2024INSTR返回第5位,SUBSTR从第6位截取,结果是2024
  • 对于格式2 18|2023INSTR返回第3位,SUBSTR从第4位截取,结果是2023

这样不管你的数据是哪种格式,都能正确提取年份啦!

内容的提问来源于stack exchange,提问作者Swathi Reddy

火山引擎 最新活动