1

I have a SQL query that returns two columns - "Title" and "Count". When "Title" is NULL or empty (''), I want to combine the result into one row. How can I do this?

This is what I have so far:

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

but because of the Group By, they are split into two different rows:

enter image description here

4 Answers 4

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 
Sign up to request clarification or add additional context in comments.

Comments

1

An alternate to Joe Stefanelli's solution:

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

Comments

0

Having the [Count] column in the GROUP BY clause seems suspicious... does it work if you only group by [Title]?

Comments

0

COALESCE

select title_id,count(*),COALESCE(type,pub_id)
from titles group by title_id,type,pub_id

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.