2017-02-17 6 views
3

Допустим, у меня есть таблица «interesting_table», где я хочу найти все строки, где все записи не равны нулю.SQL Query- найти строку, где все записи не являются нулями

Я пытался

select * from interesting_table where * is not NULL ; 

Это не работает, потому что * не признается в качестве колонки. Как я могу изменить это без перечисления всех столбцов?

+1

нет простого способа. либо указать все столбцы, либо использовать динамический sql для создания вашего оператора. –

+1

Вы должны фактически перечислить столбцы и выполнить не нулевую проверку на каждом из них, разделенных условными обозначениями И. –

+0

Спасибо Joel и vkp. Вопрос может быть закрыт. – Illusionist

ответ

1

два варианта:

1) Используйте функцию как CONCAT, который будет возвращать нулевое значение, если какой-либо из параметров является нулевым

select * 
from interesting_table 
where concat(data1, data2) is not null; 

2) Используйте NATURAL JOIN с одной и той же таблицы. Если какой-либо из столбцов равен NULL, JOIN не будет работать для этой строки.

select t1.* 
from interesting_table t1 
natural join interesting_table t2; 

Если таблица содержит дубликаты, возможно, вам придется использовать DISTINCT.

Демонстрация: http://rextester.com/NRSDM90436

Смежные вопросы