Kolejna ciekawostka:
Funkcja DIFFERENCE() w SQLS
Do porównywania tekstów, im teksty bardziej do siebie pasują
względem jakiegoś tam ("fonetycznego"?) algorytmu, tym wartość
większa - zwraca wartość 0-4.
ZASTOSOWANIE:
Szukamy czegoś w bazie, np. jakiejś nazwy kontrahenta. Nie
pamiętamy jej literka po literce. Kojarzymy, że że coś z 'micro'
i coś z 'soft' ma w nazwie...
(a z jakiś powodów nie chcemy lub nie możemy użyć '%','_')
To piszemy SQLka:
SELECT nazwa FROM faktura ORDER BY DIFFERENCE(nazwa,'micro soft')
DESC
albo
SELECT nazwa FROM faktura WHERE DIFFERENCE(nazwa,'micro soft')>=3
Serio, działa (nawet ten algorytm niezgorszy).
Linki:
http://support.microsoft.com/kb/100365
http://oreilly.com/catalog/sqlnut/chapter/ch04.html
difference(character_expression, character_expression)
Compares how two arguments sound and returns a number from 0 to 4.
Higher result indicates better phonetic match.
środa, 13 stycznia 2010
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz