SQLite выбери где пусто?

92

В SQLite, как я могу выбрать записи, где some_column пуст?
Пустой считается как NULL, так и "".

  • 8
    Это помогает, если вы формулируете вопросы как вопросы. Что мы должны ответить?
Теги:
select

4 ответа

243
Лучший ответ

Существует несколько способов, например:

where some_column is null or some_column = ''

или

where ifnull(some_column, '') = ''

или

where coalesce(some_column, '') = ''

о

where ifnull(length(some_column), 0) = 0
  • 0
    Каковы преимущества каждого решения?
  • 1
    @Pacerier: Может быть некоторая разница в производительности, но кроме этого это просто вопрос стиля.
Показать ещё 3 комментария
21

Похоже, вы можете просто:

SELECT * FROM your_table WHERE some_column IS NULL OR some_column = '';

Тестовый пример:

CREATE TABLE your_table (id int, some_column varchar(10));

INSERT INTO your_table VALUES (1, NULL);
INSERT INTO your_table VALUES (2, '');
INSERT INTO your_table VALUES (3, 'test');
INSERT INTO your_table VALUES (4, 'another test');
INSERT INTO your_table VALUES (5, NULL);

Результат:

SELECT id FROM your_table WHERE some_column IS NULL OR some_column = '';

id        
----------
1         
2         
5    
  • 4
    +1: я бы тоже подумал об использовании TRIM(some_column) = ''
1

Может быть, вы имеете в виду

select x
from some_table
where some_column is null or some_column = ''

но я не могу сказать, потому что вы действительно не задавали вопрос.

0

Вы можете сделать это со следующим:

int counter = 0;
String sql = "SELECT projectName,Owner " + "FROM Project WHERE Owner= ?";
PreparedStatement prep = conn.prepareStatement(sql);
prep.setString(1, "");
ResultSet rs = prep.executeQuery();
while (rs.next()) {
    counter++;
}
System.out.println(counter);

Это даст вам число строк, где значение столбца равно null или пустое.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню