Перейти к основному содержимому

SQL CONCAT

Нет лучшего и более простого способа объединить несколько строковых значений в запросе, чем использование функции CONCAT. Точка.

Это простая функция с довольно простыми случаями использования. Используйте эту страницу, чтобы понять, как использовать функцию CONCAT в вашем хранилище данных и почему аналитики используют её в своих моделях dbt.

Как использовать функцию CONCAT

Использование функции CONCAT довольно просто: вы передаете строки или бинарные значения, которые хотите объединить в нужном порядке, в функцию CONCAT. Вы можете передать в функцию CONCAT столько выражений, сколько захотите.

Пример функции CONCAT

select
user_id,
first_name,
last_name,
concat(first_name, ' ', last_name) as full_name
from {{ ref('customers') }}
limit 3

Этот запрос, использующий таблицу customers из Jaffle Shop, вернет результаты с новым столбцом, объединяющим поля first_name и last_name с пробелом между ними:

user_idfirst_namelast_namefull_name
1MichaelP.Michael P.
2ShawnM.Shawn M.
3KathleenP.Kathleen P.

Синтаксис функции CONCAT в Snowflake, Databricks, BigQuery и Redshift

Snowflake, Databricks, Google BigQuery и Amazon Redshift поддерживают функцию CONCAT с одинаковым синтаксисом на каждой платформе. Вы также можете увидеть функцию CONCAT, представленную оператором || (например, select first_name || last_name AS full_name from {{ ref('customers') }}), который имеет ту же функциональность, что и функция CONCAT на этих платформах данных.

Сценарии использования CONCAT

Наиболее часто мы видим конкатенацию в SQL для строк, чтобы:

  • Объединять адресные/географические столбцы в одно поле
  • Добавлять жестко закодированные строковые значения к столбцам для создания более понятных значений столбцов
  • Создавать суррогатные ключи с использованием метода хеширования и нескольких значений столбцов (например, md5(column_1 || column_2) as unique_id)

Это не исчерпывающий список того, где ваша команда может использовать CONCAT в вашей работе с данными, но он содержит некоторые общие сценарии, с которыми аналитики сталкиваются ежедневно.

0