Avatar billede andersbl Nybegynder
31. juli 2009 - 10:11 Der er 2 kommentarer og
1 løsning

SQL if null chose all

Hej
Jeg har en form så man udfylder, og påvirker en SQL streng

ResultSet rs = stmt.executeQuery("" +
        "SELECT Country, Month, Tradedvia, Memonavn"
        +"FROM test "
        +"WHERE Country = '"+ c.getAccount() + "');

Hvis Account ikke er udfyldt så retunerer den "null" og Country=null viser den jo intet. Det skulle gerne være sådan at hvis den ikke er valgt bliver den filterings felt ingoreret. Ved det kan løses med nogle if sætninger, men er der der ikke en mere elegang måde.

Har tænkt noget som
    String SQL;
    SQL = c.getAccount();
    if ( SQL == null ) then SQL = "all" // eller *. Det er her hvad SQL skal være ligmed problemer opstår.
Avatar billede arne_v Ekspert
31. juli 2009 - 15:11 #1
foelgende tricks bruges en del:

WHERE country = IFNULL(?,country)

Hvor IFNULL er funktionen som returnerer vaerdi nummer 2 hvis vaerdi nummer 1 er NULL.

Funktionen hedder noget forskelligt i forskellige database.

? er din vaerdi (om man bruger ? hvis man bruger PreparedStatement fre,for Statement).
Avatar billede andersbl Nybegynder
03. august 2009 - 10:51 #2
Perfekt, skriver du et svar arne?
Avatar billede arne_v Ekspert
03. august 2009 - 13:01 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester