Мне нужно отобразить конкретный столбец в моем SQL-результате, только если он не является нулевым. Если он равен нулю, я не хочу, чтобы этот столбец появлялся вообще в моем результате.
Есть ли способ выразить это условие в SQL?
Это не имеет смысла, потому что запрос может возвращать несколько строк. Одна строка может иметь значение для рассматриваемого столбца, а следующая может не иметь значения. Тогда условный столбец создаст структурную несогласованность между возвращаемыми строками.
Нет, это не...
Это невозможно, и действительно не нужно. Вам нужно будет иметь фиксированное количество столбцов, просто нет другого пути. Но это не ваша проблема, вы этого совсем не хотите!
Запросы - это просто получить данные, а не для представления данных. Вы должны просто восстановить его и скрыть столбец, если все значения null
.
SQL обычно не позволяет вам рассуждать о свойствах целых столбцов. Условия находятся на свойствах строк. Поэтому нет способа сказать "если все значения в этом наборе этого столбца равны нулю...". Однако вы можете тривиально ограничиться строками, которым не хватает свойства.
Если вы хотите показать столбец только в том случае, если он не является нулевым для каждой строки, вы можете сделать COUNT(*) WHERE
... общее условие... AND that_column IS NULL
, а затем повторить запрос, включая столбец, если первый результат равен 0 и исключая его в противном случае. Но я не уверен, почему вы хотели бы сделать такую вещь.