Как я могу запросить значение столбца Bigtable в стандартном SQL BigQuery? - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь запросить значение столбца Bigtable со стандартным SQL в BigQuery:

#standardSQL
SELECT
  default.blah.cell.value
FROM
  mycategory.mytable
WHERE
  rowkey LIKE '123%'

Я получаю сообщение об ошибке:

Error: Syntax error: Unexpected keyword DEFAULT at [3:3]

Приведенный выше запрос отлично работает в устаревшем SQL, но не в стандартном SQL.

Выбор только ключа строки работает в #standardSQL:

#standardSQL
SELECT
  rowkey
FROM
  mycategory.mytable
WHERE
  rowkey LIKE '123%'

Как выбрать значение столбца в стандартном SQL, как пытается выполнить первый запрос в этом посте?

1 Ответ

0 голосов
/ 03 июля 2018

Проблема в том, что DEFAULT - это зарезервированное ключевое слово , поэтому вам нужно экранировать его с помощью обратных галочек. Например:

#standardSQL
SELECT
  `default`.blah.cell.value
FROM
  mycategory.mytable
WHERE
  rowkey LIKE '123%'

Редактировать: поскольку cell является полем типа массива, следует использовать функцию ARRAY, если целью является чтение значений из него в виде массива:

#standardSQL
SELECT
  ARRAY(SELECT value FROM UNNEST(`default`.blah.cell)) AS values
FROM
  mycategory.mytable
WHERE
  rowkey LIKE '123%'

Более подробную информацию о работе с массивами можно найти в документации.

...