Android-запрос SQLite, где столбец не является нулевым, а не пустым

Я не могу понять синтаксис для вызова .query. Мне нужно выбрать все записи, соответствующие определенному столбцу, которые не имеют нулевого или пустого значения для второго (другого) столбца

моя лучшая попытка:

Cursor cursor = mDatabase.query(DatabaseOpenHelper.TABLE_ROOMS, mAllColumns,
    DatabaseOpenHelper.KEY_ROOM_HOSPITAL_ID
    + " =? AND " + DatabaseOpenHelper.KEY_ISO + " IS NOT NULL OR NOT ?",
    new String[]{String.valueOf(hospitalId), ""}, null, null, null);

Это возвращает ВСЕ записи. Если я использую AND вместо OR, он возвращает записи, соответствующие hospitalId, но игнорирует часть NOT NULL OR NOT "".

Какие-нибудь советы? Должен ли я использовать вызов rawQuery?

Ответ 1

Я считаю, что правильный синтаксис был бы следующим:

AND key IS NOT NULL AND key != ""

где key - ваш столбец

Ответ 2

Если в вашем столбце может быть несколько пробелов, и вы также хотите рассматривать их как пустые значения, используйте TRIM

column_name IS NOT NULL AND TRIM(column_name," ") != ""