У меня есть два столбца, которые могут содержать похожие данные, и я пытаюсь выяснить, как сравнивать как сходства.SQL, сравнивающий аналогичные столбцы
TABLE:
PatientID | InsurnaceCompany1 | InsuranceCompany2
111111111 | Medicaid | Medicaid - Part D
222222222 | Medicaid - ABC Co | Medicaid
333333333 | Medicaid - ABC Co | Medicaid - Part D
444444444 | MVP Insurance | MVP
555555555 | Medicare | Medicaid
666666666 | Medicaid | MVP
777777777 | Private - MVP | MVP Option
Вопрос, Как сравнить два столбца, чтобы знать, если они похожи.
Результаты должны быть что-то вроде:
PatientID | InsurnaceCompany1 | InsuranceCompany2 | Result
111111111 | Medicaid | Medicaid - Part D | TRUE
222222222 | Medicaid - ABC Co | Medicaid | TRUE
333333333 | Medicaid - ABC Co | Medicaid - Part D | TRUE
444444444 | MVP Insurance | MVP | TRUE
555555555 | Medicare | Medicaid | FALSE
666666666 | Medicaid | MVP | FALSE
777777777 | Private - MVP | MVP Option | TRUE
я могу использовать случай заявление, чтобы проверить некоторые из этих вариантов, как:
case
when InsuranceCompany1 like '%' + InsuranceCompany2 + '%' then 'TRUE'
when InsuranceCompany2 like '%' + InsuranceCompany1 + '%' then 'TRUE'
else 'FALSE'
end AS Result
Но этот тест не для PatientID 333333333 и 777777777 выше.
Для уточнения, я определю «аналогичный», как показано ниже: оба термина аналогичны, если в каждом из них содержится одно и то же слово. Это относится, даже если слово является общим (например, «страхование»). Таким образом, «Страховая компания B» похожа на «Страховую компанию A» по двум причинам: «Страхование» и «Компания».
как вы определяете «похожи»? –
Аналогично, если какая-либо часть (слово) первой страховой компании находится во втором или наоборот. Т.е.: если «медикаида» появляется где-то в обеих колонках, то они похожи. Аналогично, если «MVP» появляется где-то в обоих столбцах, то они похожи. – ajspacemanspiff
Что делать, если «страховка» появляется в обеих колонках? –