在分组时获取输出中的列,但仅在分组列只有一行时才对该列进行分组

时间:2012-01-12 10:26:05

标签: sql sql-server sql-server-2005 tsql

表1

t1Id
t1Name


表2

t2Id
t2Name

Table1_Table2_Mapping

t1Id
t2Id

在下面的查询中,作为输出中的第二列,我希望t2Name列在Having COUNT(t1Id) = 1,我想要一些固定值('Common')Having COUNT(t1Id) > 1

Select t1Id 
from Table1_Table2_Mapping
Group By t1Id

提前致谢。

1 个答案:

答案 0 :(得分:6)

SELECT m.t1Id,
       CASE
         WHEN COUNT(*) = 1 THEN MAX(t2.t2Name)
         ELSE 'Common'
       END
FROM   Table1_Table2_Mapping m
       JOIN Table2 t2
         ON t2.t2Id = m.t2Id
GROUP  BY m.t1Id