Как объединить таблицу и заменить числовое значение почтового индекса текстовым значением почтового индекса - PullRequest
0 голосов
/ 09 июля 2019

У меня есть одна таблица main_cohort, в которой есть два разных столбца, которые содержат почтовые индексы в трехзначной и пятизначной числовой форме (например, 100 или 10017), zip_value3 и zip_value5, и я хочу объединить ее с другойтаблица zip_codes, в которой есть те же столбцы, а также дополнительный столбец city_name, в котором есть текстовая строка города, связанная с каждым почтовым индексом.

Я хочу заменить числовые значения в первой таблице названиями городов во второй таблице.Так, например, если у меня есть customer_id в 'main_cohort', у которого 'zip_value3' равен 100, я хочу заменить это в моем выводе значением из city_name из таблицы zip_code, что будет Нью-Йорк,

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Я предполагаю, что вам нужен один город, сначала проверьте 5-значный почтовый индекс, а затем 3-значный:

select mc.*, coalesce(zc5.city_name, zc3.city_name) as city_name
from main_cohort mc left join
     zip_code zc5
     on mc.zip_value5 = zc5.zip_code left join
     zip_code zc3
     on mc.zip_value3 = zc3.zip_code
0 голосов
/ 10 июля 2019

# Таблица - tbl_MainCohort #

CustomerID Zip_Value3 Zip_Value5

  1             100         10000
  2             200         20000

Таблица - tbl_ZipCodes

ZipID Zip_Value3 Zip_Value5 City_Name

 1              100         10000       New York
 2              200         20000       California

Следующий запрос даст вам все города для всех ZipCode в списке, где совпадают оба столбца ZipCode из обеих таблиц.

ВЫБЕРИТЕ City_Name из кодов tbl_ZipCodes INNER JOIN tbl_MainCohort основные коды ON.Zip_Value3 = main.Zip_Value3 И коды.Zip_Value5 = main.Zip_Value5

...