【问题标题】:Split one string with commas into columns将一个带逗号的字符串拆分为列
【发布时间】:2019-02-18 11:19:08
【问题描述】:

例如,我有下表:

| Block                       |
| abcdefgh,12kjkjkj,231wewoxyz|

如何将其转换为:

| Block1   | Block2   | Block3     |
| abcdefgh | 12kjkjkj | 231wewoxyz |

注意: - 每个“块”最多有 8 个逗号(因此可以分成 9 个较小的块)。逗号的数量不同;有些有 8 个逗号,有些有 4 个,有些有 7 个,等等。每个较小的块将占据一列。

顺便说一句,我使用 Presto。

谢谢!

【问题讨论】:

  • 你用的是什么数据库?
  • 我使用 Presto @AlexHowansky
  • @AlexHowansky 谢谢;这有助于我迈出第一步。第二步,我尝试将字符串拆分为不同的列。
  • 终极目标是什么?你从什么开始,你想在哪里结束?

标签: sql string split comma presto


【解决方案1】:

在我看来,您只需使用 split_part 函数来创建您的列,如下所示:

SELECT
    split_part(Block, ',', 1) AS Block1,
    split_part(Block, ',', 2) AS Block2,
    split_part(Block, ',', 3) AS Block3,
    split_part(Block, ',', 4) AS Block4,
    split_part(Block, ',', 5) AS Block5,
    split_part(Block, ',', 6) AS Block6,
    split_part(Block, ',', 7) AS Block7,
    split_part(Block, ',', 8) AS Block8,
    split_part(Block, ',', 9) AS Block9
FROM
    your_table

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多