2011-10-12 4 views
2

SQL에서 현재 월 데이터를 표시하는 DateField가 있습니다. 날짜 중 일부는 NULL이며 fn NOW() 날짜와 같은 somethng로 NULL Date를 대체하고 싶습니다. 누군가 내 쿼리에서 NULLS를 업데이트하는 데 도움이 될 수 있습니까? MS SQL 2008 R2를 사용하고 있습니다.SQL보기, NULL 값 바꾸기

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

+0

사용하는 SQL 어떤 맛? SQL Server, mySql, Oracle? –

답변

3

그냥 사용

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

-3

그냥

+0

우리가 '업데이트'하고 싶지 않은보기입니다. – JNK

+0

또한, 나는 당신을 다운 다운하지 않았지만 "복수"downvote를 고맙게 생각합니다. – JNK

0

이 해결한다()하여 DateField는 NULL 않는 SQL UPDATE의 SET를하고 GETDATE하는 값을 설정하여 문제. 당신이 무이있는 경우 SQL 서버에서

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

대신

SELECT dateField... 

사용

SELECT ISNULL(dateField, GETDATE())... 
+0

GETDATE()로 변경했지만 ISNULL 함수를 보여 주려고했습니다. –

+0

나는 내 downvote을 제거했습니다 –

0
select IsNull(yourdate, getdate()) 
3

, 당신은 isNULL(Column, GetDate())

를 사용하거나 것 열 ltiple, 매개 변수 목록의 첫 번째 null 이외의 항목을 반환합니다 COALESCE

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

이를 사용합니다.

+0

복수의 투표, 정말? –

+0

+1 - COALESCE에 대한 좋은 설명 – JNK

+0

반항을 시도하십시오. –

0

당신은

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

또는

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