SQL View, замените NULL-значение - PullRequest
2 голосов
/ 12 октября 2011

В SQL у меня есть DateField, который показывает данные текущего месяца.Некоторые из дат имеют значение NULL, и я хотел бы заменить дату NULL чем-то вроде даты fn NOW ().Может ли кто-нибудь помочь мне с обновлением NULLS в моем запросе?Я использую MS SQL 2008 R2.

SELECT     TOP (100) PERCENT dbo.[001_SubItem_Price].SubItem, { fn NOW() } AS Date, dbo.POTable.Date AS Datefield
FROM         dbo.[001_SubItem_Price] LEFT OUTER JOIN
                      dbo.POTable ON dbo.[001_SubItem_Price].SubItem = dbo.POTable.Item
WHERE     (MONTH(dbo.POTable.Date) = MONTH(GETDATE())) OR
                      (MONTH(dbo.POTable.Date) IS NULL)
GROUP BY dbo.[001_SubItem_Price].SubItem, dbo.POTable.Date
ORDER BY dbo.[001_SubItem_Price].SubItem

enter image description here

Ответы [ 7 ]

4 голосов
/ 12 октября 2011

Просто используйте:

...COALESCE(Datefield, GETDATE()) as Datefield

3 голосов
/ 12 октября 2011

на сервере SQL, вы бы использовали isNULL(Column, GetDate())

или, если у вас несколько столбцов, используйте COALESCE

COALESCE(column1, column2, GETDATE()) as columnName

Это вернет первый ненулевой элемент в списке параметров.

1 голос
/ 12 октября 2011

Вы можете использовать ISNULL или COALESCE в зависимости от того, в каком контексте вам это нужно.

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

http://blogs.msdn.com/b/sqltips/archive/2008/06/26/differences-between-isnull-and-coalesce.aspx

0 голосов
/ 12 октября 2011

Вы можете попробовать либо

ISNULL(dbo.POTable.Date, CURRENT_TIMESTAMP) AS Datefield 

, либо

ISNULL(dbo.POTable.Date, GETDATE()) AS Datefield  
0 голосов
/ 12 октября 2011
select IsNull(yourdate, getdate())
0 голосов
/ 12 октября 2011

Это должно решить вашу проблему.

http://msdn.microsoft.com/en-us/library/ms184325.aspx

Вместо

SELECT dateField...

использование

SELECT ISNULL(dateField, GETDATE())...
0 голосов
/ 12 октября 2011

Просто создайте SQL UPDATE SET, где поле даты равно NULL, и установите значение getdate ()

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