簡體   English   中英

大查詢:動態替換多列中的字符串部分

[英]Big query: Replace string parts in multiple columns dynamically

我有一個動態表,其中包含帶字符串的列 [statement_nn] 的數量不確定。 我需要用相應的項目替換字符串部分

該表如下所示:原始表

考慮到“語句”列是可變的並且不能在標准 REPLACE 語句中專門使用它們,我該如何進行操作?

這是我希望得到的最終結果: Desired result

我試圖制作一個“聲明”列數組並在那里替換項目,但我需要能夠保留列名以獲得所需的結果

您可以使用EXECUTE IMMEDIATE動態 select 並替換您想要的項目。 我解決它的方法是用以下查詢手動替換每個占位符:

execute immediate (
select 'select *  replace(' || 
  string_agg('regexp_replace(' || 
    'regexp_replace(' || 
      'regexp_replace(' || column_name || ',' || ' r"<name>", name)' 
      || ',' || ' r"<surname>", surname)' 
      || ',' || ' r"<registration_year>", CAST(registration_year as STRING))' 
      || ' as ' || column_name, ', ') || 
') from project_name.dataset_name.table_name'
from `project_name.dataset_name.INFORMATION_SCHEMA.COLUMNS`
where table_name = 'table_name'
and STARTS_WITH(column_name, "statement_")
)

請記住替換project_namedataset_nametable_name

暫無
暫無

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

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