/ / jak zrobić instrukcje dołączania do tsql - sql-server, sql-server-2008, tsql

jak zrobić instr w połączeniu tsql - sql-server, sql-server-2008, tsql

Mam ogromny stół z 1000 milionami rekordów jachcę dopasować rekordy z małego stolika do rekordów w setkach W ogromnej tabeli zapisano imię i nazwisko (imię osoby, imię imię i nazwisko nazwisko) W malutkiej tabeli mają 3 pola (TINY_TABLE.NAME_PART TINY_TABLE.NAME_PART TINY_TABLE.NAME_PART) Ale imię / imię / nazwisko / nazwisko są pomieszane w tabeli mała_tabela.

wprowadź opis obrazu tutaj

Teraz chcę wykonać wewnętrzne łączenie obu tabel i chcę wykonać rozmyte dopasowanie. Nie używam wyszukiwania pełnotekstowego / lub zawierają polecenia Czy możemy to zrobić za pomocą join (jak instruktaż w oracle)

if (
TINY_TABLE.NAME_PART_1  exists in  Huge_Table
and
TINY_TABLE.NAME_PART_2   exists in  Huge_Table
and
TINY_TABLE.NAME_PART_3   exists in  Huge_Table
)
then
Mark Matched
else
Mark UnMatched

Odpowiedzi:

1 dla odpowiedzi № 1

Spróbuj czegoś takiego. Ale to nie jest wydajny kod.

SELECT DISTINCT a.fullname,
"Matched" [status]
FROM  (select distinct fullname from huge_table) a
JOIN tiny_table b
ON a.fullname LIKE "%" + namepart1 + "%"
AND a.fullname LIKE "%" + case when len(namepart2)=0 then " " else namepart2 end + "%"
AND a.fullname LIKE "%" + namepart3 + "%"
UNION
SELECT *,
"Not matched" [status]
FROM   huge_table