用逗号将一个字符串拆分成列
Split one string with commas into columns
例如,我有以下table:
| Block |
| abcdefgh,12kjkjkj,231wewoxyz|
如何将其转换为:
| Block1 | Block2 | Block3 |
| abcdefgh | 12kjkjkj | 231wewoxyz |
注意:
- 每个 "Block" 最多有 8 个逗号(因此可以分成 9 个较小的块)。逗号的数量各不相同;有些有 8 个逗号,有些有 4 个,有些有 7 个,等等。每个较小的块将占据一列。
顺便说一句,我使用 Presto。
谢谢!
在我看来,您只需使用 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
例如,我有以下table:
| Block |
| abcdefgh,12kjkjkj,231wewoxyz|
如何将其转换为:
| Block1 | Block2 | Block3 |
| abcdefgh | 12kjkjkj | 231wewoxyz |
注意: - 每个 "Block" 最多有 8 个逗号(因此可以分成 9 个较小的块)。逗号的数量各不相同;有些有 8 个逗号,有些有 4 个,有些有 7 个,等等。每个较小的块将占据一列。
顺便说一句,我使用 Presto。
谢谢!
在我看来,您只需使用 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