środa, 13 stycznia 2010

SQL - ciekawostki

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.

Brak komentarzy:

Prześlij komentarz