2010-07-21 46 views
10

Tôi có truy vấn sau đây:thay thế các giá trị null trong sql trục

SELECT * 
FROM Table1 
PIVOT 
(
    SUM(Value) 
    FOR [Period] IN ([06/1/2007],[07/1/2007]) 
) 
AS p 

Một số hàng trả lại là null nhưng tôi muốn thay thế chúng bằng 0.

Tôi đã thử SUM(ISNULL(Value,0)) as Val nhưng nó không phải đang làm việc. (nói cú pháp không chính xác)

+0

Có phải đó là * chính xác * những gì bạn đã cố gắng? Nó thiếu một ')'. Trong thực tế, truy vấn ban đầu của bạn dường như có thêm ')'. –

+1

Nó thường giúp khi "nó không hoạt động" được giải thích trong các điều kiện hữu ích. –

Trả lời

22

Ồ, tôi đang sử dụng ISNULL ở địa điểm sai.

truy vấn nên trông như thế này:

SELECT ID,ISNULL([06/1/2007],0), ISNULL([07/1/2007],0) 
FROM Table1 
PIVOT 
(
    SUM(Value) 
    FOR [Period] IN ([06/1/2007],[07/1/2007]) 
) 
AS p 
+1

Tôi đã cố gắng để đưa các isnull trong trục là tốt. Khi tôi nhìn thấy câu trả lời của bạn, tôi cảm thấy thực sự xấu. – Paul

Các vấn đề liên quan