sql >> Database teknologi >  >> RDS >> PostgreSQL

JDBC - vælg hvor kolonnen er NULL

Intet er = NULL . Hvis du skrev select * from test where value=NULL ind i en interaktiv forespørgselsevaluator, ville du ikke få noget tilbage. JDBC omskriver ikke dit udtryk, det erstatter bare værdierne.

Du skal bruge en forespørgsel ved hjælp af is operatør i stedet:

PreparedStatement select = c.prepareStatement("select * from test where value is NULL");
return select.executeQuery();

Du har sagt, at du forventer, at JDBC er "kloge" nok til at gøre det for dig, men det ville være en stor overtrædelse af adskillelsen af ​​bekymringer. Du kan godt ønske at have en parameter i din forespørgsel ved hjælp af = som du indstiller NULL vel vidende, at det forhold aldrig vil blive vurderet sandt (hvilket sandsynligvis er en del af et større sæt betingelser).



  1. Hurtigste måde at fjerne ikke-numeriske tegn fra en VARCHAR i SQL Server

  2. ASP MVC MsSql til MySQL migration

  3. mysql automatisk inkrement fejl

  4. Jeg har en insert into statement, men der er en fejl med et komma, og jeg kan bare ikke rette den