Terdata с использованием знака решетки в названии полей - PullRequest
0 голосов
/ 04 августа 2020

У меня есть задача перевести некоторые скрипты Teradata на BigQuery SQL. Однако я не могу найти, что означает синтаксис со знаком фунта в имени псевдонима.

SELECT
     A  AS SOME_COLUMM_1
    ,B AS SOME_COLUMN_2
    ,C     AS SOME_COLUMN_3# /* <------- HERE */
    ,COUNT(*)      AS E FROM
     SOME_DB.SOME_TABLE;

1 Ответ

1 голос
/ 04 августа 2020

Нет смысла, '#', '$' и '_' - это просто разрешенные символы в имени объекта, кроме 'a' - 'z' и '0' - '9'.

Если BigQuery не поддерживает SOME_COLUMN_3# в качестве имени объекта, вы можете изменить его или заключить в двойные кавычки: "SOME_COLUMN_3#"

Имена в двойных кавычках могут включать практически любой символ и позволяют использовать зарезервированные ключевые слова в качестве имен, таких как таблица named "table".

Внимание: в стандарте SQL имена в двойных кавычках чувствительны к регистру, но не в Teradata, например, «a» и «A» - разные имена в Standard SQL, но одинаковые в Терадате.

...