当前位置: 首页 > 面试题库 >

查询GBQ中的列标题

葛修永
2023-03-14
问题内容

是否可以执行查询以向我提供包含特定表的列标题的输出?我正在通过GBQ将多个文件上传到我们的服务器中,虽然它会自动检测标头,但我想以行或逗号分隔的单元格列出标头。

谢谢


问题答案:

我假设您的文件为CSV格式,所以表的架构中没有重复的字段。考虑到这一点-以下是适用于BigQuery Standard SQL的信息,只需要完全限定的表名

#standardSQL
SELECT 
  REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"') cols_as_array,
  ARRAY_TO_STRING(REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"'), ',') cols_as_string
FROM (SELECT 1) LEFT JOIN 
  (SELECT * FROM `project.dataset.table` WHERE FALSE) t
ON TRUE

如以下示例所示,是否适用于某些实际表

#standardSQL
SELECT 
  REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"') cols_as_array,
  ARRAY_TO_STRING(REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"'), ',') cols_as_string
FROM (SELECT 1) LEFT JOIN 
  (SELECT * FROM `bigquery-public-data.utility_us.us_states_area` WHERE FALSE) t
ON TRUE

结果将是

Row cols_as_array           cols_as_string   
1   region_code             region_code,division_code,state_fips_code,state_gnis_code,state_geo_id,state_abbreviation,state_name,legal_area_code,feature_class_code,functional_status_code,area_land_meters,area_water_meters,internal_point_lat,internal_point_lon,state_geom   
    division_code        
    state_fips_code      
    state_gnis_code      
    state_geo_id         
    state_abbreviation       
    state_name       
    legal_area_code      
    feature_class_code       
    functional_status_code       
    area_land_meters         
    area_water_meters        
    internal_point_lat       
    internal_point_lon       
    state_geom

您可以选择要使用的版本:以数组形式列出或以逗号分隔的字符串形式列出

另请注意,以上查询完全不会产生任何费用!



 类似资料:
  • 问题内容: 在Oracle中,可以使用关键字返回SQL查询内部的内容,如下所示: 问题是: 有谁知道我在哪里可以找到相关文档? PortgreSQL(或任何其他开源DBMS)是否具有类似的功能? 问题答案: 它被称为CURSOR EXPRESSION,并在明显的地方记录了该文档:《 Oracle SQL参考》。 在这里找到它。 关于第二个问题,PostgreSQL提供的与此功能最接近的东西是“标量

  • 问题内容: 我有以下查询: 我想为该选项命名时如何更改标题。 问题答案: 使用这样的别名: 如果要更改列名,则不仅要为此查询使用,而且通常要使用ALTER TABLE

  • 问题内容: 我有一张像这样的桌子: 我的问题是;我想找到谁有一个叫亚历克斯的孩子。 我无法在SQL中使用,因为在同一单元格中有多个名称。 所以我用-看起来很聪明,但同时我像Alex一样开始一切:( Alexandre或我想获得dia,但结果是dia和diana :( 如何获得该数据类型的单个Alex? 我希望我能用我的英语不好来解释我的问题:D 问题答案: 最好的解决方案是规范您的架构。您应该有一

  • 我在HDP 2.6.5平台上使用Hive(1.2.1000.2.6.5.0-292)在一个简单的数据库中工作,该数据库基于以下数据:https://grouplens.org/datasets/movielens/100k/ 。我有4个表,名为:类型、电影、收视率、用户,如下所示: 我想写一个问题,返回哪种类型的电影最常被女性观看,哪种类型的电影最常被男性观看?但对我来说,问题是电影类型所在的电影

  • 我在用Cassandra存储股票信息。每个“行”都有一些基字段,如:时间、价格、关闭、打开、低、高等。在这些字段的顶部,我有一个浮动类型的值列表,其中包含一些内部系统计算。 对象的示例:

  • 我有一个实体类,我有一个值作为薪水。工资的数据类型是bigdecimal。现在我想对这个实体执行一个查询,其中有两个值,从salary和toSalary。我希望所有的员工都有薪水 薪水以Bigdecaml表示,fromSalary和toSalary以Double表示。 我尝试了2种方法。 标准在哪里(薪水)。gte(新的BigDecimal(fromSalary))。lte(新的大十进制(toSa