Witam! Prosze o pomoc w skontruowaniu zapytania, takie zalozenia
- tabela pole1, pole2, pole3 (varchar) - pola te moga zawierac wartosc -11 wtedy tez sa one ignorowane w szukaniu, - jako parametry do zapytania podaje wartosc1, wartosc2, wartosc3, moga byc puste(odpowidaja one polom pole1, pole2, pole3
np jezeli tabela zaiwer awartosci
pole1 | pole2 | pole3
1.-11 | 'mm' | 'ww' 2.'qq'| 'xm' | 'ww' 3.'qw'|'lm'|'ee'
podajac pole1 = 'q' pole2 = 'm' pole3 puste chce otrzymac 3 rekordy podajac pole1 = 'q' pole2 = 'm' pole3 w chce otrzymac pierwsze 2 rekordy podajac pole1 = 'q' pole2 = 'm' pole3 e chce otrzymac 3 rekord podajac pole1 = puste pole2 = puste pole3 'e' chce otrzymac rekord 3
kazde z pol moze miec wartosc -11, wtedy w danym rekordzie wszystkie 3 pola sa ignorowane przy szukaniu (nie moga zostac zwrocone w takim wypadku, ale jezlei jedno czy dwa z nich maja te wartosc a pozostale spelniaja jakas zaleznosc to zostaje ono zwrocone
pozdrawiam P.
pomoc w zapytaniu postgresql
Witam! Prosze o pomoc w skontruowaniu zapytania, takie zalozenia
- tabela pole1, pole2, pole3 (varchar) - pola te moga zawierac wartosc -11 wtedy tez sa one ignorowane w szukaniu, - jako parametry do zapytania podaje wartosc1, wartosc2, wartosc3, moga byc puste(odpowidaja one polom pole1, pole2, pole3 kazde z pol moze miec wartosc -11, wtedy w danym rekordzie wszystkie 3 pola sa ignorowane przy szukaniu (nie moga zostac zwrocone w takim wypadku, ale jezlei jedno czy dwa z nich maja te wartosc a pozostale spelniaja jakas zaleznosc to zostaje ono zwrocone
A po co dwa różne wartości: Null i '-11' skoro obie mają znaczyć to samo?
Select * From TwojaTabela Where (pole1 Like '%' || parametr1 || '%' Or parametr1 Is Null Or parametr1 '-11') And (pole2 Like '%' || parametr2 || '%' Or parametr2 Is Null Or parametr2 '-11')itd.
Pozdrawiam Grzegorz
A po co dwa różne wartości: Null i '-11' skoro obie mają znaczyć to samo?
Select * From TwojaTabela Where (pole1 Like '%' || parametr1 || '%' Or parametr1 Is Null Or parametr1 '-11') And (pole2 Like '%' || parametr2 || '%' Or parametr2 Is Null Or parametr2 '-11')
dobra inaczej
mamy wartosci
1.-11|'x'|'xy'| 2.'w'|'x'|'xy'| 3.'z'|'x'|'xy'| 4.'i'|'x'|'xy'|
przy parametrach (odpowiadajacym kolejnoscia kolumnom) %parametr1% ,% parametr2%, % parametr3% gdzie parametr1 jest pusty a parametr2 wynosi 'x', parametr3 wynosi 'xy' wyswietloaja sie rekordy 2,3,4, bez 1, nawet jak zamiast w,z,i w pozostalych bedzie null. Bo klient nie zyczy sobie szukania po pierwszym polu.
pozdrawiam
chodzi o to by rekord nie zostal pokazany gdy ktos poda trzy puste wartosci czyli trzy parametry %parametr% gdy np nie
A po co dwa różne wartości: Null i '-11' skoro obie mają znaczyć to samo?
Select * From TwojaTabela Where (pole1 Like '%' || parametr1 || '%' Or parametr1 Is Null Or parametr1 = '-11') And (pole2 Like '%' || parametr2 || '%' Or parametr2 Is Null Or parametr2 = '-11')
dobra inaczej
mamy wartosci
1.-11|'x'|'xy'| 2.'w'|'x'|'xy'| 3.'z'|'x'|'xy'| 4.'i'|'x'|'xy'|
przy parametrach (odpowiadajacym kolejnoscia kolumnom) %parametr1% ,% parametr2%, % parametr3% gdzie parametr1 jest pusty a parametr2 wynosi 'x', parametr3 wynosi 'xy' wyswietloaja sie rekordy 2,3,4, bez 1, nawet jak zamiast w,z,i w pozostalych bedzie null. Bo klient nie zyczy sobie szukania po pierwszym polu.
chyba cos pomerdalem