2010-07-21 7 views
10

je la requête suivante:remplacer les valeurs NULL dans pivot sql

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

Certaines des lignes retournées sont nulles, mais je veux les remplacer par 0.

J'ai essayé SUM(ISNULL(Value,0)) as Val mais ce n'est pas travail. (il dit la syntaxe incorrecte)

+0

Est-ce * exactement * ce que vous avez essayé? Il manque un ')'. En fait, votre requête d'origine semble avoir un supplément ')'. –

+1

Cela aide généralement quand "ça ne marche pas" est expliqué en termes utiles. –

Répondre

22

Ohh, j'utilisais ISNULL au mauvais endroit.

la requête devrait ressembler à ceci:

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

J'essayais aussi de mettre l'isnull dans le pivot. Quand j'ai vu ta réponse, je me sentais vraiment mal. – Paul