You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将单行四列数据转为2*2维度行?求SQL与Informatica方案

单行四列数据转2*2行结构的实现方案

问题说明

输入为单行包含四个字段值的记录(以空格分隔):
| Ram 1000 Sita 2000 |
需要转换为2行2列的结构化数据,预期输出:

header 1header 2
Ram1000
Sita2000

SQL实现方案

MySQL 示例

假设输入表名为source_table,存储合并值的字段为combined_col,通过字符串拆分+UNION ALL生成两行记录:

SELECT
  SUBSTRING_INDEX(SUBSTRING_INDEX(combined_col, ' ', 1), ' ', -1) AS `header 1`,
  SUBSTRING_INDEX(SUBSTRING_INDEX(combined_col, ' ', 2), ' ', -1) AS `header 2`
FROM source_table
UNION ALL
SELECT
  SUBSTRING_INDEX(SUBSTRING_INDEX(combined_col, ' ', 3), ' ', -1) AS `header 1`,
  SUBSTRING_INDEX(SUBSTRING_INDEX(combined_col, ' ', 4), ' ', -1) AS `header 2`
FROM source_table;

Oracle 示例

使用正则表达式拆分函数REGEXP_SUBSTR实现:

SELECT
  REGEXP_SUBSTR(combined_col, '[^ ]+', 1, 1) AS "header 1",
  REGEXP_SUBSTR(combined_col, '[^ ]+', 1, 2) AS "header 2"
FROM source_table
UNION ALL
SELECT
  REGEXP_SUBSTR(combined_col, '[^ ]+', 1, 3) AS "header 1",
  REGEXP_SUBSTR(combined_col, '[^ ]+', 1, 4) AS "header 2"
FROM source_table;

Informatica PowerCenter实现方案

步骤1:源与Expression转换配置

  1. 创建源表,定义字段combined_col(字符串类型)。
  2. 添加Expression转换,创建4个输出端口用于拆分原始字段:
    • val1: SUBSTR(combined_col, 1, INSTR(combined_col, ' ', 1, 1)-1)
    • val2: SUBSTR(combined_col, INSTR(combined_col, ' ', 1, 1)+1, INSTR(combined_col, ' ', 1, 2)-INSTR(combined_col, ' ', 1, 1)-1)
    • val3: SUBSTR(combined_col, INSTR(combined_col, ' ', 1, 2)+1, INSTR(combined_col, ' ', 1, 3)-INSTR(combined_col, ' ', 1, 2)-1)
    • val4: SUBSTR(combined_col, INSTR(combined_col, ' ', 1, 3)+1)

步骤2:生成多行记录

添加Router转换,创建两个输出组:

  • 组1:无条件输出,将val1映射到目标字段header 1,val2映射到header 2
  • 组2:无条件输出,将val3映射到目标字段header 1,val4映射到header 2

步骤3:目标表配置

创建目标表,包含header 1和header 2两个字符串字段,将Router的两个输出组均连接到目标表对应端口,运行映射即可得到预期结果。


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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:02:54