У меня есть два набора данных, назовем их набором данных A и набором данных B.
Набор данных А выглядит следующим образом:
Набор данных B выглядит следующим образом:
Мой вопрос: как мне присоединиться к таблицам, чтобы в наборе данных A были заполнены все нулевые значения? Будет ли это простым внутренним соединением, например:
Select *
From Dataset A
JOIN Dataset B
ON Dataset A.Business Code = Dataset B.Business Code
Будет ли это заполнять нулевые значения в бизнес-коде и бизнес-описании набора данных A? Или мне также придется выполнить другое соединение, например:
Select *
From Dataset A
JOIN Dataset B
ON Dataset A.Business Description = Dataset B.Business Description
для заполнения набора данных А? Я довольно новичок в SQL, и раньше я не сталкивался с чем-то подобным, и мне было интересно, может ли кто-нибудь помочь мне понять, как это будет сделано.
О, хороший улов! Да, есть несколько случаев, когда оба значения равны NULL. Извините за это, я добавлю это в таблицу!
поделитесь своим выходом, а также
Этот запрос обрабатывает случаи, когда только 1 из столбцов (Business Code
и Business Description
) имеет значение NULL и предполагает, что Business Name
является УНИКАЛЬНЫМ.
UPDATE DatasetA A
JOIN (SELECT
A.BusinessName,
B.BusinessCode,
B.BusinessDescription
FROM DatasetA A
JOIN Dataset B ON B.BusinessCode = A.BusinessCode
WHERE A.BusinessDescription IS NULL
UNION ALL
SELECT
A.BusinessName,
B.BusinessCode,
B.BusinessDescription
FROM DatasetA A
JOIN Dataset B ON B.BusinessDescription = A.BusinessDescription
WHERE A.BusinessCode IS NULL) t ON A.BusinessName = t.BusinessName
SET
A.BusinessCode = t.BusinessCode,
A.BusinessDescription = t.BusinessDescription
Это потрясающе, Спасибо! Он делает именно то, что я искал!
Есть ли случаи, когда и
Business Code
, иBusiness Description
оба являютсяNULL
, или всегда хотя бы 1 из них заполнен?