首页 > 解决方案 > Teradata SQL - 转换由 ; 分隔的值 在单列到多行

问题描述

我有一个带有逗号分隔值的列,如下所示。

从 test_table 中选择 job_dependency;

工作依赖

1;2;3;4;5;6

我需要在 Teradata SQL 中将其转换为以下格式,其中每个数字都是一行。

工作依赖

1 2 3 4 5 6

任何帮助都会非常有帮助。

标签: teradata

解决方案


此任务有一个表函数:

WITH cte AS 
 (
   SELECT
      1 AS inKey -- might be a column, either INT or VarChar up to 60 bytes
                 -- Other data types should be CASTed to VarChar (and back in the Select)
     ,job_dependency2 AS inString
   FROM test_table
 )
SELECT *
FROM TABLE
 ( StrTok_Split_To_Table(cte.inKey, cte.inString, ';')
   RETURNS (outKey INTEGER, -- data type must match input column
             tokenNum INTEGER,
             token VARCHAR(20))
 ) AS dt

推荐阅读