簡體   English   中英

BigQuery - 對多個列的操作在名稱上共享相同的子字符串

[英]BigQuery - operations on multiple columns sharing same substring on name

我有幾個表,其中的列名如下:

  • FLCOLY01, FLCOLY02, FLCOLY03, ..., FLCOLYn
  • FLCOLX01, FLCOLX02, FLCOLX02, ..., FLCOLXn

共享相同子字符串的列數可能因表而異。

對於每個表,我必須執行包含以下操作的查詢:

ROW_NUMBER() OVER (PARTITION BY name, surname, description, 
    CAST(FLCOLY01 AS STRING), CAST(FLCOLX01 AS STRING), 
    CAST(FLCOLY02 AS STRING), CAST(FLCOLX02 AS STRING), 
    CAST(FLCOLY03 AS STRING), CAST(FLCOLX03 AS STRING), 
    ...
    CAST(FLCOLYn AS STRING), CAST(FLCOLXn AS STRING) 
    ORDER BY date ASC)
CASE WHEN FLCOLX01  = 125 THEN VALUE_1
         WHEN FLCOLX02  = 125 THEN VALUE_2
         WHEN FLCOLX03 = 125 THEN VALUE_3
         WHEN FLCOLX04 = 125 THEN VALUE_4
         WHEN FLCOLX05 = 125 THEN VALUE_5
         WHEN FLCOLX06 = 125 THEN VALUE_6
         WHEN FLCOLX07 = 125 THEN VALUE_7
         ELSE NULL END AS FLCOLX125

有沒有更好的方法來編寫這些查詢?

據我所知,別無選擇,因為您需要一個輸出列來為不同的字段提供優先級。

你的方法是正確的。

暫無
暫無

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

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