Объединение таблиц, в которых одна таблица включает сопоставленные столбцы

Я пытаюсь объединить две таблицы в Snowflake в столбце «Имя». Однако одна таблица имеет имена все в нижнем регистре, а другие таблицы имеют имена с первым символом в верхнем регистре, за которым следует нижний регистр, поэтому таблицы не могут найти совпадения.

Обычно вы используете функцию UPPER или LOWER, чтобы найти точное совпадение, но в одной таблице столбец был сопоставлен, и эту функцию здесь нельзя использовать.

Есть ли у кого-нибудь идеи о том, как я могу успешно объединить эти две таблицы?

Спасибо


person afk    schedule 20.11.2019    source источник


Ответы (1)


Возможно, вы сможете объединить две таблицы с помощью функции COLLATE в столбце Name таблицы, которая не была сопоставлена:

SELECT *
FROM table1 t1
INNER JOIN table2 t2
    ON t1.Name = COLLATE(Name, 'upper');

Это предполагает, что Name столбец первой таблицы был сопоставлен со всеми прописными буквами.

person Tim Biegeleisen    schedule 20.11.2019
comment
Спасибо за ваше предложение. К сожалению, это не сработало. Когда я использовал «COLLATE (Name, 'upper')» в своем запросе, просто чтобы посмотреть, как будут выглядеть имена, они все равно были в нижнем регистре. - person afk; 20.11.2019
comment
Тогда, возможно, мое имя для сортировки неверно. Можете ли вы вместо этого попробовать использовать en-upper? Я думаю, что предложение сравнить два столбца имен с использованием одного и того же сопоставления - это один из правильных вариантов. - person Tim Biegeleisen; 20.11.2019