我在下面有这个查询,根据特定条件解析列中的名称。我想扩充此查询,以便包含一个额外的列,该列是adwords_final表中的实际列," Key"。
insert into mk_kw
with a(v) as (
select "Campaign"
from adwords_final
),
pre as (
select split_part(v, '{', 1) a,split_part(v, '{', 2) b
from a
)
select split_part(a, '-', 1) ca,
split_part(a, '-', 2) cb,
split_part(split_part(a, '-', 3), '|', 1) cc,
split_part(split_part(a, '-', 3),
split_part(split_part(a, '-', 3), '|', 1) || '|', 2) cd,
'{' || b ce
from pre;
当前输入表如下所示,"广告系列"是当前的行列
Campaign |Key |
-----------------------------------+--------+
ES-SRC-IOT|Connectivity|SIM|USA|{e}|ES-SRC-IOT|Connectivity|SIM|USA|{e}2017-5
目前的输出如下所示
ca | cb | cc | cd | ce
----+-----+-----------+----------------------------+------
ES | SRC | IOT | Connectivity | SIM | USA | {e}
我想添加" Key"列为此输出中的第一列。
是否可以添加此内容,还是我必须完全废弃此查询?
干杯。
答案 0 :(得分:0)
TRUNCATE mk_kw;
INSERT INTO mk_kw
with a(v,g) as (
select "Campaign","Key"
from adwords_final
), pre as (
select split_part(v, '{', 1) a,split_part(v, '{', 2) b,g||'' "Key"
from a
)
select
"Key",
split_part(a, '-', 1) ca,
split_part(a, '-', 2) cb,
split_part(split_part(a, '-', 3), '|', 1) cc,
split_part(split_part(a, '-', 3),
split_part(split_part(a, '-', 3), '|', 1) || '|', 2) cd,
'{' || b ce
from pre;