Я сравниваю две таблицы в соответствии с их адресной строкой и почтовым индексом. Однако иногда Почтовый индекс (США) имеет формат 28272-0516, а в других - только 28272. Они должны соответствовать друг другу независимо от знака после тире '-'.
В SQL Server 17 я использую CharIndex, чтобы найти тире '-', однако сталкиваюсь с проблемой, поскольку не весь почтовый код содержит тире.
Как вы думаете, мне нужен UNION, чтобы захватить все почтовые коды в таблице a, которые не содержат тире, затем те, которые содержат тире, затем таблицу b, которые содержат тире и т. Д.
SELECT *
from a
inner join b
on
AND a.addressline1 = b.addressline1
AND LTRIM(TRIM(LEFT(a.PostalCode,CHARINDEX('-',a.PostalCode)-1))) = LTRIM(TRIM(LEFT(b.VendorPostalCode,CHARINDEX('-',b.VendorPostalCode)-1)))