gpt4 book ai didi

sql - 需要将具有多个分隔符的列分隔为 Hive 中的多行

转载 作者:行者123 更新时间:2023-12-02 20:55:51 25 4
gpt4 key购买 nike

这是我原来的 table 。我需要分隔列段。我在下面显示了我想要的。

我确实尝试过稍后查看爆炸,但它不是像 ABC-DEF 这样的字符串,而是在单独的行中给我 A、B、C、-、D、...。

<table border="1">
<caption>What I Have</caption>
<tr>
<th>Unique-Key </th>
<th>PNR </th>
<th>Segments </th>
</tr>
<tr>
<td>ABC-12345-BLAH1234</td>
<td>BLAH1234</td>
<td>ABC-DEF;GHI-JKL| JKL-GHI;DEF-ABC</td>
</tr>
</table>




<table border="1">
<caption>What I want</caption>
<tr>
<th>Unique-Key </th>
<th>PNR </th>
<th> New Segments </th>
</tr>
<tr>
<td>ABC-12345-BLAH1234</td>
<td>BLAH1234</td>
<td>ABC-DEF</td>
</tr>
<tr>
<td>ABC-12345-BLAH1234</td>
<td>BLAH1234</td>
<td>GHI-JKL</td>
</tr>
<tr>
<td>ABC-12345-BLAH1234</td>
<td>BLAH1234</td>
<td>JKL-GHI</td>
</tr>
<tr>
<td>ABC-12345-BLAH1234</td>
<td>BLAH1234</td>
<td>DEF-ABC</td>
</tr>
</table>

最佳答案

with t as (select 'ABC-DEF;GHI-JKL| JKL-GHI;DEF-ABC' as col)

select e.col as segments

from t lateral view explode (split(t.col,'\\s*[;|]\\s*')) e
;
+----------+
| segments |
+----------+
| ABC-DEF |
| GHI-JKL |
| JKL-GHI |
| DEF-ABC |
+----------+

关于sql - 需要将具有多个分隔符的列分隔为 Hive 中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44544644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com