Tsql 如果同时返回null和Data,则T-SQL选择Data,否则为null

Tsql 如果同时返回null和Data,则T-SQL选择Data,否则为null,tsql,join,case,Tsql,Join,Case,我有一个t-sql报告,其结果如下: A B C Bridgevine 6093690444 3917018 Bridgevine 972 3929277 Bridgevine 974 Bridgevine 974 3918929 CSPP Test 72720110438 CSPP Test 1234 CSPP Test CCDSTSTNW Intelisys 12114

我有一个t-sql报告,其结果如下:

     A       B             C
Bridgevine  6093690444  3917018
Bridgevine  972         3929277
Bridgevine  974 
Bridgevine  974         3918929
CSPP Test   72720110438 
CSPP Test   1234    
CSPP Test   CCDSTSTNW   
Intelisys   12114 - DD  
Intelisys   12114 - DD  3844758
Intelisys   12553 - TL  3881365
问题是(作为一个例子)显示B=974的两条记录。我只希望报告显示C的值在哪里。如果一个记录没有C值,我希望它仍然显示该记录。下面是所需的输出:

     A       B             C
Bridgevine  6093690444  3917018
Bridgevine  972         3929277
Bridgevine  974         3918929
CSPP Test   72720110438 
CSPP Test   1234    
CSPP Test   CCDSTSTNW       
Intelisys   12114 - DD  3844758
Intelisys   12553 - TL  3881365
我知道这不难,但我似乎不明白。您会使用COALESCE或CASE语句,还是其他什么?

如果没有a和B相同但C具有不同非空值的记录,则可能使用聚合

SELECT
  A, B, MAX(C)
FROM
 whatever
GROUP BY
  A, B
ORDER BY
 whatever
因此,对于像这样的数据,这是失败的

CSPP Test   SomeB    null
CSPP Test   SomeB    FirstC
CSPP Test   SomeB    SecondC    --only get this row

如果没有A和B相同但C具有不同非空值的记录,则可能是聚合

SELECT
  A, B, MAX(C)
FROM
 whatever
GROUP BY
  A, B
ORDER BY
 whatever
因此,对于像这样的数据,这是失败的

CSPP Test   SomeB    null
CSPP Test   SomeB    FirstC
CSPP Test   SomeB    SecondC    --only get this row