Как выбрать все имена столбцов, которые содержат подстроку в BigQuery? - PullRequest
0 голосов
/ 09 сентября 2018

Я хотел бы выбрать все столбцы с именем столбца, содержащим подстроку 'age_'

 id   gender   age_now   age_graduated
 aa     F        21         25 
 bb     M        34         24

Мне нужны только столбцы age_now и age_graduated

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Если вы не против использовать Python для генерации ваших запросов:

from google.cloud import bigquery

client = bigquery.Client(project=project_id)
table = client.get_table(
    client.dataset('public_dump', project='fh-bigquery').table('test201602')) 
pattern_cols = [x.name for x in table.schema if x.name.startswith("inferred")]
print ( "SELECT %s\nFROM `%s.%s.%s`" % (
    ','.join(pattern_cols), table.project, table.dataset_id, table.table_id))

enter image description here

0 голосов
/ 09 сентября 2018

Если вам известны столбцы без префикса age_, вы можете использовать SELECT * EXCEPT :

SELECT * EXCEPT id, gender
FROM tab;

AFAIK нет синтаксиса, например:

SELECT * LIKE 'age_%'
FROM tab

Таким образом, единственным решением является чтение таблицы метаданных INFORMATION_SCHEMA.COLUMNS и построение динамического запроса SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...