Отображать столбец, только если он не нулевой - PullRequest
0 голосов
/ 16 августа 2010

Мне нужно отображать определенный столбец в моем результате SQL, только если он не нулевой.Если это ноль, я не хочу, чтобы этот столбец вообще появлялся в моем результате.

Есть ли способ выразить это условие в SQL?

Ответы [ 4 ]

3 голосов
/ 16 августа 2010

Это не имеет смысла, потому что запрос может возвращать несколько строк.Одна строка может иметь значение для рассматриваемого столбца, а следующая может не иметь значения.Тогда условный столбец создаст структурное несоответствие между возвращаемыми строками.

2 голосов
/ 16 августа 2010

Это невозможно и действительно не нужно. Вам нужно иметь фиксированное количество столбцов, другого пути просто нет. Но на самом деле это не твоя проблема, ты этого совсем не хочешь!

Запросы предназначены только для извлечения данных, а не для представления данных. Вы должны просто извлечь его и скрыть столбец, если все значения null.

2 голосов
/ 16 августа 2010

Нет, это не ...

1 голос
/ 16 августа 2010

SQL обычно не позволяет рассуждать о свойствах целых столбцов.Условия находятся на свойствах строк.Таким образом, нет никакого способа сказать, «если все значения в этом наборе этого столбца равны нулю ...».Однако вы можете просто ограничить себя строками, в которых отсутствует свойство.

Если вы хотите, чтобы столбец отображался только тогда, когда он не равен нулю для каждой строки, вы можете выполнить COUNT(*) WHERE ... ваше общее условие ... AND that_column IS NULL, а затем повторить запрос, включаястолбец, если первый результат был 0 и исключая его в противном случае.Но я не уверен, почему ты хочешь делать такие вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...