Połączenie dwóch podobnych ciągów znaków

0

Czesc
Mam tabele z pracownikami, która w kolumnie stanowisko zawiera stanowiska, zapisane bez polskich znaków. Potrzebuję ją zaktualizować o polskie znaki, poprzez JOIN ze słownikiem i UPDATE pola stanowisko. Szukam funkcji w MS SQL Server, która pozwoli połączyć mi dwa podobne ciągi znaków. Teradata posiadała funkcję EDIT_DISTANCE, która określała jakby dopuszczalną ilość różnic dla dwoch ciągów znaków.
Poszukuje czegoś bazującego może na algorytmie levenstheina.
Znalazłem funkcję DIFFERENCE, ale ona nie zwraca wartości, która mogłaby mi pomóc,
Znalazłem funkcję SOUNDEX, ale ona jest mało precyzyjna, ponieważ np Kontrolerów jakości może być kilku różnych, a SOUNDEX zwraca tę samą wartość dla każdego.

Pracownik Stanowisko
A Kontroler Jakosci
B Slusarz
C Obsluga

Słownik

Kontroler Jakości
Ślusarz
Obsługa

Alternatywną opcją, jest przemapowanie Słownika na wartości bez polskich znaków, i złączenie z pracownikami po nowej kolumnie, ale chciałbym tego uniknąć.

Dzięki i pozdrawiam!

0
gruby19 napisał(a):

Czesc

Alternatywną opcją, jest przemapowanie Słownika na wartości bez polskich znaków, i złączenie z pracownikami po nowej kolumnie, ale chciałbym tego uniknąć.

W mojej opinii to nie alternatywna opcja, ale najlepsza opcja - najmniej czasochłonna. Jeżeli faktycznie to kwestia tylko polskich znaków. Do porównywania podobieństwa używałem kiedyś tego algorytmu:
https://en.wikipedia.org/wiki/Levenshtein_distance

Jednakże w Twoim przypadku to po prostu jest to zbędne.

0

No tylko dlatego chciałem uniknąć tej 'opcji awaryjnej' ponieważ nie do końca funkcjonuje.
Tabelka, w której są polskie znaki, jest tabelką techniczną tworzoną przez jakieś narzędzie BI i na poziomie MS SQL Server polskie znaki w tej tabeli nie są traktowane jako polskie znaki... Nie wiem czy tłumaczę to jasno, ale w praktyce wygląda to tak:

Stanowisko REPLACE(Stanowisko,'Ś','S')
Ślusarz Ślusarz
(Czyli nie działa - nie potraktował 'Ś' jako 'Ś')

Ale z kolei:

Stanowisko REPLACE(Stanowisko,'Ś','XX')
Ślusarz ŚluXXarz

WTF :|

1 użytkowników online, w tym zalogowanych: 0, gości: 1