2011-04-15 23 views
1

我有一個返回兩列 - 「標題」和「計數」的SQL查詢。當「標題」爲NULL或空('')時,我想將結果合併成一行。我怎樣才能做到這一點?SQL:NULL或空時將值合併爲一個結果

這是我到目前爲止有:

SELECT [Title] WHEN '' THEN 'blank' ELSE ISNULL([Title],'blank') AS [Title], 
     COUNT([value]) AS [Count] 
FROM .... 
WHERE .... 
GROUP BY [Title],[Count] 

是本集團截至但是,他們被分成兩個不同的行:

enter image description here

回答

5
SELECT CASE WHEN COALESCE([Title],'') = '' THEN 'blank' 
      ELSE [Title] 
     END AS [Title], 
     COUNT([value]) AS [Count] 
FROM .... 
WHERE .... 
GROUP BY CASE WHEN COALESCE([Title],'') = '' THEN 'blank' 
       ELSE [Title] 
     END 
+0

不錯 - 完美的作品。謝謝! – dotNetkow 2011-04-15 21:13:59

0

有在[計數]列GROUP BY子句似乎是可疑的...如果只按[標題]進行分組,它會起作用嗎?

0

COALESCE

選擇的title_id,COUNT(*),COALESCE(類型,的pub_id)
從標題 組由 的title_id,類型,PUB_ID

1

一種替代品喬·斯特凡內利的解決方案:

Select Case 
     When Len([Title]) > 0 Then [Title] 
     Else 'blank' 
     End 
From ... 
Group By Case 
      When Len([Title]) > 0 Then [Title] 
      Else 'blank' 
      End 
+0

謝謝,這也適用。 – dotNetkow 2011-04-15 21:15:38

相關問題