Priya
#sql #java #programowanie

Mam taki problem

SELECT * FROM tabela WHERE kolumna1 = ? AND kolumna2 = ?

Wartości "?" pochodzą ze zwykłych pól tekstowych. Chcę, żeby była możliwość pozostawienia tego pola pustego przy szukaniu. Ktoś wie jak to ogarnąć?
  • Najlepsze
  • Wszystkie komentarze
egocentryk
@Priya: CASE WHEN / THEN / ELSE
plushy
@Priya: Sklej zapytanie dynamicznie, nie ma sensu by baza obrabiała zbędne rzeczy.
L.....l
L.....l
@Priya: jesli jest to oracle to warunek mozesz dodac taki: kolumna1 = nvl(?, kolumna1)
L.....l
L.....l
@Priya: coalesce
Yahoo_
@Priya: dlaczego chcesz to obsługiwać po stronie bazy danych?
egocentryk
@Yahoo_: bez sensu, SQL jest wręcz stworzony do takich operacji. Jeszcze, żeby chodziło o jakieś większe manipulacje na stringach, regexpy, itp., to wtedy można cudować (bo wydajność, etc.), ale IMO nie ma sensu nadpisywać podstawowej funkcjonalności bazy danych :]
G.....n
G.....n
Chcę, żeby była możliwość pozostawienia tego pola pustego przy szukaniu.


@Priya: Może zmienić na

OR
?
Uparciuch
kolumna1


@Priya: Nie łatwiej dwa zapytania, w zalezności od ilości argumentów ?
g.....s
g.....s
@Ginden: a jak poda oba to mu nie znajdzie części wspólnej
Uparciuch
@Ginden: Wtedy zmieniasz logikę zapytania.
G.....n
G.....n
@Uparciuch: No, on chce zmienić logikę zapytania - skoro jedno pole może być puste...
Priya
Priya Autor
0
@Uparciuch: Ale tych pól jest więcej, nie chciało mi się całości pisać.
Uparciuch
@Ginden: Ale gdy podasz oba, dostaniesz błędny wynik.
G.....n
G.....n
@Priya: sprecyzuj zapytanie.
L.....l
L.....l
@Priya: w zasadzie nawet nie musi być oracle. Każda baza powinna mieć cis na wzór nvl
Priya
Priya Autor
0
@Legol: postgres, zaraz poszukam czy jest taka opcja.

@Ginden: Tak jak napisałem, ale rzeczywiście mogłem dla uściśnienia dodać więcej tych pól. Docelowo jest ich 4, każde może - ale nie musi - być wypełnione.
egocentryk
@Legol: teź, ale CASE WHEN wydaje mi się czytelniejsze
Priya
Priya Autor
0
@Yahoo_: A jak inaczej?
Yahoo_
@Priya: widzę tag #java
Priya
Priya Autor
0
@Yahoo_: W sensie, żeby wszystkie rekordy z tabeli wrzucić do macierzy i z niej kolejno usuwać?