我有 3 列稱為 product_one、product_two 和 product_three,我想將它們全部合并為一個。
From this:
|product_one | product_two | product_three |
|------------------------------------------|
|spoon | phone | knife
|fork | case |
To this:
|products|
|--------
|spoon |
|fork |
|phone |
|case |
|knife |
這在sql中怎么可能?
uj5u.com熱心網友回復:
考慮以下方法
select products from your_table
unpivot (products for col in (product_one, product_two, product_three))
如果應用于您問題中的樣本資料 - 輸出是
另一個不需要指定列名的選項:
select split(kv, ':')[offset(1)] products
from your_table t,
unnest(split(translate(to_json_string(t), '{}"', ''))) kv
where split(kv, ':')[offset(1)] != 'null'
還有一個——
select trim(value) products
from your_table t,
unnest(split(trim(format('%t', t), '()'))) value
where trim(value) != 'NULL'
都具有相同的輸出
uj5u.com熱心網友回復:
select t.product_one
from your_table t
union all
select t2.product_two
from your_table t2
union all
select t3.product_three
from your_table t3
uj5u.com熱心網友回復:
通過聯合:從 a 中選擇 a.product_one 作為 pr,其中 a.product_one 不為空 union 從 b 中選擇 b.product_two 作為 pr,其中 b.product_two 不為 null
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/504052.html
標籤:Google Cloud Collective sql 数据库 谷歌大查询
下一篇:使用SQL選擇陳述句組合多個表