繁体   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