如何在 Informatica 中将列数据转置为单独的行

问题描述 投票:0回答:1

我有一个场景,我必须根据 ID 值将列数据转换为单独的行。

例如

当前数据:

2100402472 --> 业主;租户;分租户

预期数据:

  1. 2100402472 业主

  2. 2100402472 租户

  3. 2100402472 分租客

注意:第二列为 NCLOB。

informatica informatica-powercenter
1个回答
0
投票

这是 Informatica 中众所周知的行到列问题。
您可以使用

Expression
Normalizer
来完成此操作。

  1. 使用表达式将数据拆分为多列。
id - input/output
in_data - iput only
out_col1= SUBSTRING(
        in_data,
        1,
        CASE
            WHEN INSTR(in_data, ',') > 0 THEN INSTR(in_data, ',') - 1
            ELSE LENGTH(in_data)
        END
    )

out_col2 =  SUBSTRING(
        my_column,
        CASE
            WHEN INSTR(my_column, ',') > 0 THEN INSTR(my_column, ',') + 1
            ELSE LENGTH(my_column) + 1
        END,
        LENGTH(my_column)
    )
  1. 添加标准化剂。在此添加 ID、col1、col2,如下图所示。输出将是 ID 和类别。

  2. 将 ID 和类别添加到目标。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.