发生Distinct时显示备用文本

C.J*_*.J. 0 sql sql-server

我有一个示例数据如下:

ID          Message
-------------------
1           Car
2           Car
3           Car
4           Boat
5           Train
Run Code Online (Sandbox Code Playgroud)

我需要帮助来找出一个查询,这样当我这样做时SELECT DISTINCT ID, Message,结果将如下所示:

ID          Message
--------------------
Multiple    Car
4           Boat
5           Train
Run Code Online (Sandbox Code Playgroud)

每当出现重复的"消息"时,查询应将所有这些"分组"在一起,并用纯文本"多个"替换该ID.

(在我的实际数据库中,ID存储为nvarchar)

Pin*_*nyM 6

使用CASE语句COUNT()来检查重复项.这也意味着你将使用GROUP BY而不是DISTINCT:

SELECT (CASE WHEN COUNT(*) > 1 THEN 'Multiple' ELSE MIN(ID) END) ID, Message
FROM MyTable
GROUP BY Message
Run Code Online (Sandbox Code Playgroud)