2010-07-21 14 views
10

Ich habe die folgende Abfrage:ersetzen Nullwerte in SQL-Pivot

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

Einige der zurückgegebenen Zeilen sind null, aber ich möchte, dass sie mit ersetzen 0

ich SUM(ISNULL(Value,0)) as Val habe versucht, aber es ist nicht Arbeiten. (es sagt falsche Syntax)

+0

Ist das * genau * was Sie versucht? Es fehlt ein ')'. Tatsächlich scheint Ihre ursprüngliche Abfrage ein zusätzliches ')' zu haben. –

+1

Es hilft normalerweise, wenn "es nicht funktioniert" in nützlichen Begriffen erklärt wird. –

Antwort

22

Ohh, ich habe ISNULL an der falschen Stelle verwendet.

die Abfrage sollte wie folgt aussehen:

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

Ich habe versucht, die Isnull auch in den Pivot zu setzen. Als ich deine Antwort sah, fühlte ich mich wirklich schlecht. – Paul