Поделиться через


Фрагменты запросов

Часто бывает проще продублировать предшествующую работу и изменить ее, чем писать что-нибудь с нуля. Это особенно справедливо для распространенных инструкций JOIN и сложных выражений CASE. По мере роста списка запросов может быть трудно запомнить, какие запросы содержат необходимую инструкцию. Вы также можете создать фрагмент запроса, содержащий точку вставки с текстом заполнителя, который пользователь может заменить во время выполнения.

Фрагменты запросов — это сегменты запросов, которые можно совместно использовать и активировать с помощью автозаполнения. Используйте фрагменты запросов для:

  • Частые инструкции JOIN
  • Сложные предложения, такие как WITH или CASE.
  • Условное форматирование

Ниже приведены примеры фрагментов кода:

--Simple snippet
WHERE fare_amount > 100

--Snippet with an insertion point for a value to be provided at runtime
WHERE fare_amount > ${1:value}

--Snippet with an insertion point for a value to be provided at runtime and containing a default value
WHERE fare_amount > ${1:100}

--Snippet with multiple insertion points
WHERE fare_amount > ${2:min_value} AND fare_amount < ${1:max_value} AND trip_distance < ${0:max_distance}

Создание фрагментов запросов

Чтобы создать фрагменты кода, выполните следующие действия, используя следующие примеры фрагментов кода:

  1. Щелкните имя пользователя в верхней строке рабочей области и выберите Параметры в раскрывающемся списке.

  2. Перейдите на вкладку "Разработчик ".

  3. Рядом с фрагментами кода SQL-запроса нажмите кнопку "Управление".

  4. Нажмите кнопку "Создать фрагмент запроса".

  5. В поле "Заменить" введите имя фрагмента кода. Это имя будет использоваться при написании запроса, используемого фрагментом кода.

  6. Введите описание (необязательно).

  7. В поле Фрагмент введите фрагмент.

  8. Нажмите кнопку Создать.

    Фрагмент кода запроса

Использование фрагмента запроса в запросе

Ниже приведен пример простого запроса, с помощью которого можно использовать эти фрагменты запросов:

--Simple query
SELECT * FROM samples.nyctaxi.trips

Выполните следующие действия, чтобы использовать фрагмент запроса с этим запросом:

  1. Откройте редактор SQL.

  2. Введите запрос в области запросов редактора SQL.

  3. Введите первые 3 буквы имени фрагмента кода и выберите фрагмент из окна автозаполнения. Вы также можете вручную открыть окно, нажав Option + Space и выбрав фрагмент кода.

    Запрос на выбор фрагмента кода

  4. Выполните запрос с предложением WHERE из фрагмента запроса.

    запрос, показывающий фрагмент кода, используемый в запросе

Работа с точками вставки в фрагментах запросов

Чтобы назначить точки вставки, заключите целочисленную последовательность перехода с помощью одного знака доллара и фигурных скобок ${}. Текст заполнителя, которому предшествует двоеточие :, является необязательным, однако он удобен для пользователей, не знакомых с фрагментом. В фрагментах запроса с созданными ранее ${1:value} точками вставки является точка вставки с заполнителем и ${1:100} является точкой вставки со значением по умолчанию для заполнителя, который можно переопределить во время выполнения. Когда Databricks SQL отрисовывает фрагмент, знак $ доллара и фигурные скобки {} удаляются, а слово value или значение по умолчанию 100 выделено для замены.

При наличии нескольких точек вставки текст карата переходит к первой точке вставки, чтобы получить требуемое значение. При нажатии Tabкарата переходит к следующей точке вставки для следующего значения. При повторном нажатии Tab карата перейдет к следующей строке точки вставки, пока она не достигнет конечной точки вставки.

Примечание.

Точка вставки нуля ${0} всегда является последней точкой в порядке табуляции.

Выполните следующие действия, чтобы использовать фрагменты фрагментов запроса точки вставки с запросом:

  1. Откройте редактор SQL.

  2. Введите запрос в области запросов редактора SQL.

  3. Введите первые 3 буквы имени фрагмента запроса, а затем выберите фрагмент запроса с точкой вставки без значения по умолчанию.

    Фрагмент запроса добавляется в запрос, а карат вставки текста переходит к точке вставки.

    Запрос с помощью фрагмента запроса точки вставки без значения по умолчанию

  4. Введите значение предложения WHERE , например 200.

  5. При необходимости выполните запрос с предложением WHERE из фрагмента запроса.

  6. Повторите предыдущие шаги, но выберите фрагмент запроса с точкой вставки, используя значение по умолчанию.

    Запрос с помощью фрагмента запроса точки вставки, содержащего значение по умолчанию

  7. Повторите предыдущие шаги, но выберите фрагмент запроса с несколькими точками вставки.

    Запрос с помощью фрагмента запроса точки вставки, содержащего несколько точек вставки

  8. Введите значение для первой точки вставки, перейдите к следующей точке вставки и введите значение, а затем перейдите к конечной точке вставки и введите значение.