2013-11-20 2 views
1

У меня есть таблица с столбцом даты в ней. В настоящее время я использую ISNULL для установки всех значений даты NULL в 1/1/2001, чтобы это выглядело так.Дата Параметр не работает в SQL для столбца ISNULL

Select ISNULL(DateColumn,'1/1/2001') AS DateColumn, PartNumber 
From Table 
Where DateColumn < '1/1/1990' 

Кажется, что дата создания «1/1/2001» появляется в любом сгенерированном списке независимо от фильтра.

Любые предложения?

ответ

1

Это потому, что статья WHERE работает с начальным значением DateColumn, befote

ISNULL(DateColumn,'1/1/2001') 

выполняется.

Есть несколько способов исправить это, один из них, чтобы изменить положение where так:

Where ISNULL(DateColumn,'1/1/2001') < '1/1/1990' 

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

Другое решение будет трансформировать пункт where так:

Where DateColumn < '1/1/1990' AND DateColumn IS NOT NULL 
+0

Hoo Ha. Это сработало! Спасибо, Джонни Браво! Я не хотел бы оставлять любые значения Null, просто конвертировать их. – Sewder

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