首页 > 解决方案 > 使用 BigQuery SELECT * EXCEPT (),使用字符串匹配选择要包含在 EXCEPT () 中的列名

问题描述

为冗长的标题道歉。我正在尝试使用 BigQuery 的SELECT * EXCEPT()语法从我的表中删除大量列。这些列的列名中都有相似的字符串,如果我可以在列名的这个相关部分进行字符串/模式匹配以选择/删除这些列,那就太好了。作为一个小例子,假设我们有下表:

WITH 
  my_table AS (
    SELECT 'nick' as name, 24 as age, 'blue' as color, 7 as num_1, 11 as num_2, 13 as num_3
    UNION ALL SELECT 'joey' as name, 23 as age, 'blue' as color, 8 as num_1, 13 as num_2, 18 as num_3
  )

SELECT * EXCEPT (num_1, num_2, num_3) FROM my_table

上述方法适用于删除少量列,在本例中为 3,但是如果我可以执行以下操作会很棒:

SELECT * EXCEPT (contains "num_") FROM my_table

...这利用了我想删除num_作为列名一部分包含的所有列的事实。目前有没有办法做到这一点?

非常感谢您对此的任何帮助,因为这将是一个很棒的功能/能力。

标签: google-bigquery

解决方案


推荐阅读