Jak w SQLite mogę wybrać rekordy, w których jakaś_kolumna jest pusta?
Puste liczy się jako NULL i „”.
Jak w SQLite mogę wybrać rekordy, w których jakaś_kolumna jest pusta?
Puste liczy się jako NULL i „”.
Odpowiedzi:
Istnieje kilka sposobów, na przykład:
where some_column is null or some_column = ''
lub
where ifnull(some_column, '') = ''
lub
where coalesce(some_column, '') = ''
z
where ifnull(length(some_column), 0) = 0
length
przykład, ponieważ w niektórych sytuacjach może to być szybsze, ponieważ porównywanie liczb jest prostsze niż porównywanie łańcuchów. Jeśli zależy Ci na wydajności, powinieneś oczywiście sprawdzić, co robi.
Wygląda na to, że możesz po prostu zrobić:
SELECT * FROM your_table WHERE some_column IS NULL OR some_column = '';
Przypadek testowy:
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);
Wynik:
SELECT id FROM your_table WHERE some_column IS NULL OR some_column = '';
id
----------
1
2
5
Możesz to zrobić w następujący sposób:
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);
To da ci liczbę wierszy, w których wartość kolumny jest pusta lub pusta.