如何使用查询将雪花 table 中的多列转换为单列

How to convert multiple columns into single column in snowflake table using query

我有一个 table“TABLE1”,如下所示

Date        src_counrty  src_State   dst_country    dst_state   Value
2022-02-09       a           d           x             y          1
2022-02-09       a           e           x             y          1
2022-02-09       c           f           x             y          1

我想使用 select 语句 table 输出如下 table

Date         src    dst   Value
2022-02-09    a      x      1
2022-02-09    a      x      1
2022-02-09    c      x      1
2022-02-09    d      y      1
2022-02-09    e      y      1
2022-02-09    f      y      1
2022-02-09    a      y      1
2022-02-09    a      y      1
2022-02-09    c      y      1
2022-02-09    d      x      1
2022-02-09    e      x      1
2022-02-09    f      x      1

如输出中所示 table 列 src_counrty 和 src_State 合并为单列“src” 和 dst_country和 dst_state 作为“dst” 有什么方法可以使用 SQL 查询来实现此输出!

我已经在互联网上搜索了相关主题,但没有找到任何相关主题,所以如果有人有任何 suggestion/solution 这对我来说会很有帮助。谢谢!!

您可以使用一系列联合:

SELECT Date, src_counrty, dst_country, Value FROM TABLE1
UNION ALL
SELECT Date, src_State, dst_country, Value FROM TABLE1
UNION ALL
SELECT Date, src_counrty, dst_state, Value FROM TABLE1
UNION ALL
SELECT Date, src_State, dst_state, Value FROM TABLE1
ORDER BY Date;

如果输出的顺序超出日期的范围,请说明逻辑并更新上述查询。