Tsql 如果同时返回null和Data,则T-SQL选择Data,否则为null
我有一个t-sql报告,其结果如下: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
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
或