问题描述
|
我有一个SQL查询,该查询返回两列-\“ Title \”和\“ Count \”。当\“ Title \”为NULL或为空(\'\')时,我想将结果合并为一行。我怎样才能做到这一点?
这是我到目前为止所拥有的:
SELECT [Title] WHEN \'\' THEN \'blank\' ELSE ISNULL([Title],\'blank\') AS [Title],COUNT([value]) AS [Count]
FROM ....
WHERE ....
GROUP BY [Title],[Count]
但由于分组依据,它们被分为两行:
解决方法
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
,Joe Stefanelli的解决方案的替代方案:
Select Case
When Len( [Title] ) > 0 Then [Title]
Else \'blank\'
End
From ...
Group By Case
When Len( [Title] ) > 0 Then [Title]
Else \'blank\'
End
,在GROUP BY子句中有[Count]列似乎很可疑...如果仅按[Title]分组,是否可以工作?
,合并
选择title_id,count(*),COALESCE(type,pub_id)
从标题
通过...分组
title_id,类型,pub_id