Wie kann ich in SQLite Datensätze auswählen, bei denen some_column leer ist?
Leer zählt sowohl als NULL als auch als "".
Wie kann ich in SQLite Datensätze auswählen, bei denen some_column leer ist?
Leer zählt sowohl als NULL als auch als "".
Antworten:
Es gibt verschiedene Möglichkeiten:
where some_column is null or some_column = ''
oder
where ifnull(some_column, '') = ''
oder
where coalesce(some_column, '') = ''
von
where ifnull(length(some_column), 0) = 0
length
Beispiel aufgenommen, weil es in manchen Situationen tatsächlich schneller sein kann, da das Vergleichen von Zahlen einfacher ist als das Vergleichen von Zeichenfolgen. Wenn die Leistung dafür ein Problem darstellt, sollten Sie natürlich überprüfen, was sie bewirkt.
Es sieht so aus, als könnten Sie einfach Folgendes tun:
SELECT * FROM your_table WHERE some_column IS NULL OR some_column = '';
Testfall:
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);
Ergebnis:
SELECT id FROM your_table WHERE some_column IS NULL OR some_column = '';
id
----------
1
2
5
Sie können dies mit folgendem tun:
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);
Dadurch erhalten Sie die Anzahl der Zeilen, in denen der Spaltenwert null oder leer ist.