2011-04-15 26 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

相关问题