PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

JDBC - изберете къде колоната е NULL

Нищо не е = NULL . Ако сте въвели select * from test where value=NULL в интерактивен оценител на заявки, няма да получите нищо обратно. JDBC не пренаписва вашия израз, той просто замества стойностите.

Трябва да използвате заявка, използваща is оператор вместо:

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

Казахте, че очаквате JDBC да бъде достатъчно „умен“, за да направи това вместо вас, но това би било голямо нарушение на разделянето на концерните. Може и да искате за да имате параметър във вашата заявка, като използвате = който задавате NULL знаейки, че тази връзка никога няма да се оцени като истина (най-вероятно като част от по-голям набор от условия).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изчислете възрастта в години в PostgreSQL

  2. Как мога да експортирам схемата на база данни в PostgreSQL?

  3. ubuntu `env:'pg_dump':Няма такъв файл или директория` грешка

  4. Не може да се копира таблица в друга база данни с pg_dump

  5. Как да автоматизирате PostgreSQL 12 репликация и отказ с repmgr – част 2