簡體   English   中英

如何按字母順序排列 Bigquery 結果列?

[英]How to arrange Bigquery results columns alphabetically?

我想重新排列 Bigquery SQL 結果集的列。 我找不到任何允許我這樣做的文檔。 雖然可以手動執行,但我有 1005 個不同名稱的列需要組織。

我擁有的: 在此處輸入圖像描述

我想將列重新排列為: 在此處輸入圖像描述

以下答案基於了解您的真實情況並使用相同的數據樣本(請參閱如何使用 PIVOT 在 bigQuery 中使用 pivot?

execute immediate (select '''
  create or replace table `temp.pivot_table` as 
  select *
  from your_table
  pivot (any_value(sale_amt) for replace(sub_class_desc, ' ', '_') in (''' || list || '''))
  '''
  from (
    select string_agg("'" || replace(sub_class_desc, ' ', '_') || "'", ',' order by sub_class_desc) list
    from (select distinct sub_class_desc from your_table)
  )
);         

output

在此處輸入圖像描述

一種方法是使用INFORMMATION_SCHEMA列出表中的列,然后使用EXECUTE IMMEDIATE執行動態 SQL:

EXECUTE IMMEDIATE(
  CONCAT(
    "SELECT ", 
    (
      SELECT STRING_AGG(column_name ORDER BY column_name ASC)
      FROM project_id.dataset.INFORMATION_SCHEMA.COLUMNS
      WHERE table_name = 'table'
    ), 
    " FROM `project_id.dataset.table`"
  )
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM