Вы не можете использовать операторы равенства для нулей, вы должны использовать is null
и is not null
.
Итак, ваш первый запрос будет:
select * from cars_table where body is not null;
Нет простого способа выполнить вторую операцию (за исключением столбцов, которые являются нулевыми). Я предполагаю, что вы имеете в виду не отображать столбец, если все строки имеют NULL для этого столбца, так как это было бы еще сложнее сделать это построчно. Оператор select ожидает список столбцов, которые будут отображаться, и точно покажет им, являются ли они нулевыми или нет.
Единственная возможность, которая приходит на ум, - это серия (по одному на столбец) выборок с группировкой, чтобы определить, имеет ли столбец только нулевые значения, а затем динамически создать новый запрос только с теми столбцами, которые не соответствуют этим критериям. *
Но это невероятно грязно и совсем не подходит для SQL - возможно, если вы расскажете нам обоснование запроса, может быть другое решение.