krishnaraosan Ответов: 2

В таблице SQL у меня есть столбец, где значение состоит из квартального или нулевого значения.


Привет,

В таблице sql у меня есть столбец, где значение состоит из квартального или нулевого значения.
Я написал StoreProcedure при передаче параметров iam не может получить данные нулевых значений.

Что я уже пробовал:

Hi,

In sql table i have column where value consists Quarterly or Null value.
I have written a StoreProcedure when passing parameters iam unable to get data of NULL Values.

Suvendu Shekhar Giri

Если ваша таблица имеет нулевые значения, какие данные вы ожидаете получить?
Можете ли вы поделиться этим запросом?

krishnaraosan

ДА, НУЛЕВЫЕ ЗНАЧЕНИЯ ЕСТЬ .
Я хочу запрос, когда значение равно NULL, он должен отображаться как ежемесячный или ежеквартальный в состоянии where flter

Suvendu Shekhar Giri

Можете ли вы поделиться запросом, который вы пытаетесь выполнить?

krishnaraosan

У меня есть имя столбца частота где оно состоит из значения null и ежеквартально

Частота--имя столбца
НУЛЕВОЙ
Квартальный

Пожалуйста, найдите запрос ниже.
Я хочу получать записи как для нулевого значения, так и для ежеквартального.С помощью приведенного ниже запроса извлекаются только записи нулевых значений не кватерли

выберите * из Мастера
где FREQUENCY=(случай, когда частота равна нулю, то 'MONTHLY' ELSE 'Quarterly' END)

Suvendu Shekhar Giri

Пожалуйста, проверьте мое решение, если это то, что вы хотели иметь-
мое решение[^]

krishnaraosan

Я использую тот же запрос в условии where, что он не получает записей для нулевых значений.Я могу получать записи, когда частота ежекварталь, но не для нулевых значений.

выберите * из Мастера
где FREQUENCY=(случай, когда частота равна нулю, то 'MONTHLY' ELSE 'Quarterly' END)

Suvendu Shekhar Giri

Но почему вы ставите в такое состояние?
Он не возвращает результат, потому что когда частота будет равна нулю, то ваше условие WHERE будет оцениваться следующим образом -
WHERE FREQUENCY='MONTHLY' что является ложным, так как у вас есть частота=NULL.

krishnaraosan

ИТАК, КАК Я МОГУ ПОЛУЧИТЬ ЗАПИСИ ДЛЯ НУЛЕВЫХ ЗНАЧЕНИЙ И ЕЖЕКВАРТАЛЬНО В ОДНОМ ЗАПРОСЕ

Suvendu Shekhar Giri

Следующий запрос не сработал для вас?

SELECT CASE WHEN FREQUENCY IS NULL THEN 'MONTHLY' ELSE 'Quarterly' END AS FREQ,* 
FROM MASTER

krishnaraosan

У меня есть имя столбца частота где оно состоит из значения null и ежеквартально

Частота--имя столбца
НУЛЕВОЙ
Квартальный

Пожалуйста, найдите запрос ниже.
Я хочу получать записи как для нулевого значения, так и для ежеквартального.С помощью приведенного ниже запроса извлекаются только записи нулевых значений не кватерли

выберите * из Мастера
где FREQUENCY=(случай, когда частота равна нулю, то 'MONTHLY' ELSE 'Quarterly' END)

2 Ответов

Рейтинг:
2

OriginalGriff

В SQL NULLs propagate - поэтому, если вы добавите столбец, содержащий NULL, вы получите NULL в качестве общего результата:

SELECT 1 + NULL + 2

Таким образом, если вы выполняете какую-либо агрегатную операцию над своим столбцом и существует нулевое значение, вы получите нулевой результат.
Один из способов обойти это использовать ISNULL в вашем запросе:
SELECT SUM(ISNULL(MyColumn, 0)) FROM MyTable
Будет рассматривать все нулевые значения в столбце как ноль.

Если это не та проблема, с которой вы столкнулись, тогда вам нужно объяснить гораздо более подробно, в чем именно заключается ваша проблема.


Рейтинг:
2

Suvendu Shekhar Giri

Основываясь на запросе и деталях, которыми вы поделились выше, я полагаю, что вы хотите показать "ежемесячно" и "ежеквартально" в столбце частоты результата. Если это то, что вам нужно, то попробуйте следовать-

SELECT CASE WHEN FREQUENCY IS NULL THEN 'MONTHLY' ELSE 'Quarterly' END AS FREQ,* 
FROM MASTER


Пожалуйста, дайте мне знать, если это не то, что вы хотели.

Спасибо :)