Использование функции замены в соединении (SQL) - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть две таблицы, где в обеих таблицах есть столбец list_id. Мне нужно удалить указанные c символы из этого столбца из таблицы2, чтобы объединение работало. См. Пример данных ниже:

table1.list_id           table2.list_id
6353                      tb6353
3455                      tb3455 
5354                      tb5354

Мой запрос выглядит следующим образом:

SELECT *
FROM table1
LEFT JOIN table2 ON REPLACE(table2.list_id,'tb','') = table1.list_id

Однако при выполнении этого запроса в Presto я получаю следующую ошибку: '=' cannot be applied to varchar, bigint

1 Ответ

3 голосов
/ 27 апреля 2020
SELECT *
FROM table1
LEFT JOIN table2 ON CAST(REPLACE(table2.list_id,'tb','') AS bigint) = table1.list_id

или

SELECT *
FROM table1
LEFT JOIN table2 ON REPLACE(table2.list_id,'tb','') = CAST(table1.list_id as VARCHAR)
...