Есть ли способ избежать пустых строк в инструкции SQL? Мой вывод:SQL избежать пустых строк
a | b | c
1 2 3
4
EMPTY EMPTY EMPTY
5
Но я хочу:
a | b | c
1 2 3
4
5
Есть ли способ избежать пустых строк в инструкции SQL? Мой вывод:SQL избежать пустых строк
a | b | c
1 2 3
4
EMPTY EMPTY EMPTY
5
Но я хочу:
a | b | c
1 2 3
4
5
Если значение пусто или, если это null
две разные вещи, так что я не уверен, который вы ищете.
Если NULL
SELECT * FROM table WHERE a IS NOT NULL OR b IS NOT NULL OR c IS NOT NULL;
Если пусто
SELECT * FROM table WHERE a <> '' OR b <> '' OR c <> '';
сделайте это на шаг дальше и покажите, как вы можете использовать ISNULL() или COALESE() для сравнения empty & null в одно и то же время. WHERE COALESCE (a, '') <> '' AND .... – Matt
Это не сработает ... Он хочет, чтобы ORs не AND. – maplemale
@maplemale Я согласен с duncan на AND. Но duncan Я просто перечитываю ваш ответ, я должен пустнуть, почему вы используете, и не является NULL вместо NULL? Это отбросит все, кроме строки 1. Я думаю, вы хотели использовать IS NULL и b NULL, а c IS NULL – Matt
Если вы действительно хотите, чтобы проверить все столбцы таблицы используйте:
select *
from the_table
where not (the_table is null);
Это приведет к удалению все строки, где все colum ns равны нулю.
Если вы просто хотите проверить подмножество столбцов (например, потому что сгенерированный PK столбец, который вы не показали нам), использование:
select *
from the_table
where not ((a,b,c) is null);
Боковой вопрос: какой оптимизатор больше? Эксклюзивный оператор AND с операторами NOT или inc OR? Или это не имеет значения? Из варианта чистой читаемости мне нравится, когда не ((a, b, c) равно null) лучше отвечает принятому ответу с точки зрения читаемости. Но, может быть, это синтаксический сахар? – maplemale
'где <>«EMPTY»&& b <> 'EMPTY' && c <> 'EMPTY''? или что-то еще? –
Это текст пустой или пустой? если null указывает 'где a не является нулевым, а b не является нулевым, а c не является нулевым', но для уверенности нам нужно будет видеть примерные данные и ожидаемые результаты и ваш текущий запрос. Возможно, вам удастся исключить nulls/empty для чего-то неправильного в текущем запросе. Например, внешнее объединение и столбцы ABC поступают из таблицы, возвращая только согласованные записи. возможно, вместо этого следует использовать внутреннее соединение? – xQbert