Я пытаюсь объединить две таблицы фактов в базе данных Netezza по общему полю acct_nbr. В таблице a это BIGINT, а в таблице b он закодирован как VARCHAR. (У меня нет контроля над дизайном таблицы, и я подозреваю, что она настроена как VARCHAR, потому что она заполняется веб-вводом и должна допускать опечатки.) Я хотел бы игнорировать альфа-символы для объединения - я' m хочет исключить из таблицы b все поля, содержащие нечисловые символы. (Поле также содержит -,?,! и т.д.)
Я пробовал следующее:
- Базовое соединение. Выдает представление Bad int8 для «9999R99999», я полагаю, основываясь на первой неконвертируемой записи VARCHAR, с которой он сталкивается.
- Использование приведения/преобразования в обоих полях (в BIGINT для b.acct_nbr, в VARCHAR для a.acct_nbr), которое я мог реализовать неправильно. Различные ошибки, никаких результатов.
- Используя «выберите... из table_a соединение table_b b on (a.acct_nbr=b.acct_nbr и b.acct_nbr не похоже на '%[^0-9]%')». Кажется, я не могу заставить эту работу работать, и я не нашел хорошего объяснения того, как работает синтаксис '%[]%'. Я знаю, что делает %, но плохо понимаю, как использовать карат и скобки.
Я уверен, что это простая проблема, но я бьюсь головой о стену. Любая помощь высоко ценится!