【问题标题】:Teradata SQL - Convert values separated by ; in a single column to multiple rowsTeradata SQL - 转换由 ; 分隔的值在单列到多行
【发布时间】:2019-11-30 11:19:31
【问题描述】:

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

从 test_table 中选择 job_dependency;

job_dependency

​​>

1;2;3;4;5;6

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

job_dependency

​​>

1 2 3 4 5 6

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

【问题讨论】:

    标签: teradata


    【解决方案1】:

    这个任务有一个表格函数:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 2015-05-20
      相关资源
      最近更新 更多