发生Distinct时显示备用文本

时间:2015-03-13 15:46:24

标签: sql sql-server

我有一个示例数据如下:

ID          Message
-------------------
1           Car
2           Car
3           Car
4           Boat
5           Train

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

ID          Message
--------------------
Multiple    Car
4           Boat
5           Train

每当有重复的"消息"发生时,查询应该" group"所有这些都在一起并用纯文本替换ID#34; Multiple"。

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

1 个答案:

答案 0 :(得分:6)

使用CASE语句与COUNT()一起检查重复项。这也意味着您将使用GROUP BY代替DISTINCT

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