# #sql #database #google-bigquery
#sql #База данных #google-bigquery
Вопрос:
Я запрашиваю таблицу BigQuery для извлечения строительных данных. Мы храним данные о здании в ячейке вместе с данными о местоположении и названии датчика. Строка здания имеет следующие значения, например
GB-FRE-BB2003_MSU-01 GB-FRE-BB2001_MSU-12 GB-FRE-BB2003_MSU-12 GB-FRE-BB2012_MSU-12 GB-FRE-BB2003_MSU-10 etc
Я хотел бы запросить данные, используя подстроку, чтобы я мог найти все данные из здания BD2003, независимо от местоположения и датчика.
SELECT `presentvalue` FROM `database` WHERE ???
Кто-нибудь может помочь с этим? Я посмотрел SPLIT
и SUBSTRING
, но, похоже, не могу правильно ответить на вопрос.
Комментарии:
1. Вы пробовали использовать
LIKE
оператора?
Ответ №1:
использовать where substring(split(val , '-')[offset(2)], 1, 6)='BB2003'
протестировал его на приведенном ниже коде, и он работает:
create temp table sample( val string ); insert into sample (val) values ('GB-FRE-BB2003_MSU-01'), ('GB-FRE-BB2001_MSU-12'), ('GB-FRE-BB2003_MSU-12'), ('GB-FRE-BB2012_MSU-12'), ('GB-FRE-BB2003_MSU-10'); select *, from sample where substring(split(val , '-')[offset(2)], 1, 6)='BB2003''