Wyszukiwanie po NIPie

Odpowiedz Nowy wątek
2015-02-15 15:07
puzzle
0

Witajcie,

mam do zrobienia prostego selecta, wyszukanie wszystkich danych dla konkretnego numeru nip

select * from dane where nip = value;

Problem w tym, że jeden nip był wpisywany na tyle sposobów ile osób wpisujących, także ten sam nip:
123-456-78-90 może w bazie być także jako 12-34-567-890 czy 123456789 itd.

Czy jakas opcja żeby tak napisać select, żeby wyszukiwał mi po polu nip, ale pierw np. to pole czyścił z wszstkich spacji, myślników itp?

Pozostało 580 znaków

2015-02-15 17:46
0

Tak, jest.. podstawowa operacja na ciągach znaków REPLACE(@text,'-','') tylko, że w przypadku dużej ilości rekordów może to być niewydajne bowiem indeksy nie będą działać przy takim wyszukiwaniu :)

W takich przypadkach praktyką jest wpisywanie do bazy NIPu w formie niezawierającej myślników. W twoim przypadku trzeba by było poprawić wstawianie (modyfikację) pola NIP do bazy, póżniej jednym update'em można poprawić tą kolumnę, następnie założyć indeks i będzie banglać.


"There are people who actually like programming. I don't understand why they like programming."
Rasmus Lerdorf

Pozostało 580 znaków

2015-02-15 17:49
0

Cześć,
Tak jest to możliwe jednak musisz wiedzieć te wszystkie "itp". Jeżeli już wiesz co chcesz usunąć(-,;," ") to będzie kilka opcji zrobienia tego, np. funkcja "replace" zagnieżdżona w funkcjach ltrim,rtrim.

Pozdrawiam

Vardamir wyprzedziłeś mnie ;-) - Mikajlo8 2015-02-15 17:50

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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