_TABLE_SUFFIX Сравнение строк с целым числом - PullRequest
0 голосов
/ 10 декабря 2018

В учебнике по Bigquery есть упомянутый пример: есть несколько таблиц с именами gsod1991, gsod1992, gsod1993 .... gsod2018 в наборе данных noaa_gsod.Мы пишем запрос, используя _table_suffix filter

SELECT *  from `bigquery-public-data.noaa_gsod.gsod*` WHERE _TABLE_SUFFIX >'2015'

. Здесь gsod2018 - это строка и четыре цифры после gsod, который используется как _TABLE_SUFFIX для сравнения.Но почему в любом году после 2015 года используется сравнение строк?Когда мы хотим получить таблицу год за 2015, разве это не числовое сравнение, а не сравнение строк?

1 Ответ

0 голосов
/ 10 декабря 2018

Когда мы хотим получить таблицу год после 2015, разве это не числовое сравнение, а не сравнение строк?

Не имеет значения, сравниваете ли вы годы как строки илив виде чисел, если только вы не сравниваете годы до 1000 или после 9999 года, с тех пор эти годы имеют разное количество цифр.Как пример:

SELECT
  year,
  year > 2015 AS number_is_greater,
  CAST(year AS STRING) > '2015' AS string_is_greater
FROM UNNEST(GENERATE_ARRAY(2010, 2020)) AS year;

+------+-------------------+-------------------+
| year | number_is_greater | string_is_greater |
+------+-------------------+-------------------+
| 2010 |             false |             false |
| 2011 |             false |             false |
| 2012 |             false |             false |
| 2013 |             false |             false |
| 2014 |             false |             false |
| 2015 |             false |             false |
| 2016 |              true |              true |
| 2017 |              true |              true |
| 2018 |              true |              true |
| 2019 |              true |              true |
| 2020 |              true |              true |
+------+-------------------+-------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...