Sql-Server
當不同的值返回 NULL 否則返回值
以下是我獲得的數據類型的範例(由不同使用者收集):
我想知道兩個使用者何時為同一個名字收集了不同的姓氏。
我想要得到的輸出是:
如果所有使用者都收集了相同的,我會看到姓氏,如果有差異,我會看到 NULL。
我嘗試搜尋網際網路,但我無法正確描述我正在搜尋的內容。
我嘗試使用 CASE 請求,但沒有成功。
這可以使用
COUNT(DISTINCT ...)
. 按 對結果進行分組name
。計算每個名字的不同姓氏。如果計數不同於 1,則將姓氏顯示為空,否則顯示實際姓氏,例如 usingMAX
,如下所示:SELECT name , surname = CASE COUNT(DISTINCT surname) WHEN 1 THEN MAX(surname) END FROM dbo.People GROUP BY name ;
您必須應用聚合函式,
surname
因為分組name
僅按。由於您僅在不同計數為 1 時顯示它,因此您選擇哪個實例並不重要,因為它們都是相同的。MIN
也可以。