В SQLite, как я могу выбрать записи, где some_column пуст?
Пустой считается как NULL, так и "".SQLite выбрать, где пусто?
ответ
Есть несколько способов, как:
where some_column is null or some_column = ''
или
where ifnull(some_column, '') = ''
или
where coalesce(some_column, '') = ''
из
where ifnull(length(some_column), 0) = 0
+ 1 для разнообразия – MPelletier
В чем преимущества каждого решения? – Pacerier
@Pacerier: В производительности может быть какая-то разница, но кроме этого это просто вопрос стиля. – Guffa
Похоже, что вы можете просто сделать:
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
+1: Я бы подумал об использовании 'TRIM (some_column) = ''' слишком –
Может быть, вы имеете в виду
select x
from some_table
where some_column is null or some_column = ''
, но я не могу сказать, так как вы действительно не задавали вопрос.
Вы не можете сделать это с помощью следующих действий:
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);
Это даст вам не строк, где значение столбца равно нулю или пусто.
Это помогает, если вы задаете вопросы как вопросы. На что мы должны ответить? – javawizard