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

Ism*_*ilS 4 sql t-sql sql-server sql-server-2005

表格1

t1Id
t1Name
Run Code Online (Sandbox Code Playgroud)


表2

t2Id
t2Name
Run Code Online (Sandbox Code Playgroud)

Table1_Table2_Mapping

t1Id
t2Id
Run Code Online (Sandbox Code Playgroud)

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

Select t1Id 
from Table1_Table2_Mapping
Group By t1Id
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Mar*_*ith 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  
Run Code Online (Sandbox Code Playgroud)