PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

JDBC — wybierz, gdzie kolumna ma wartość NULL

Nic nie jest = NULL . Jeśli wpiszesz select * from test where value=NULL do interaktywnego oceniania zapytań, nic nie otrzymasz. JDBC nie przepisuje twojego wyrażenia, po prostu podmienia wartości.

Musisz użyć zapytania za pomocą is operator zamiast:

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

Powiedziałeś, że oczekujesz od JDBC, że będzie wystarczająco „sprytny”, by zrobić to za ciebie, ale byłoby to dużym naruszeniem rozdziału obaw. Możesz chcieć mieć parametr w zapytaniu za pomocą = które ustawiłeś NULL wiedząc, że ta relacja nigdy nie oceni prawdy (najprawdopodobniej jako część większego zestawu warunków).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres nie może otworzyć pliku CSV w celu odczytu:odmowa uprawnień

  2. Nie można połączyć się z postgresem za pomocą jdbc w powłoce pyspark

  3. Jak ustawić ścieżkę węzła dla nodejs (Ubuntu)

  4. PostgreSQL:Dlaczego to zapytanie nie używa mojego indeksu?

  5. Zmień nazwy kolumn tabeli na wielkie litery w postgresie