我正在处理一个需要检索 ID 列表和值的查询。
然后我需要为那些具有多个值的 ID 转换一个新值。
例如:
ID COLOR
1 BLUE
1 GREEN
2 ORANGE
我想返回的是这样的:
ID COLOR
1 MULTIPLE
2 ORANGE
到目前为止,我已经使用 ROW_NUMBER() 和 OVER(PARTITION BY) 来检索所有结果并对它们进行编号。
但后来我被困在圈子里。
我可以限制那些出现多次(行数> = 2)的ID,并且我得到那些需要转换为“MULTIPLE”的ID。
但是:如果我限制为只有一个值 (=1) 的 ID,也会包括这些相同的值,因为多个值 ID 也有一个行号 1。我最终得到一个无效的结果,因为我正在计算多个 - value-IDs 两次,有点像这样:
ID COLOR
1 BLUE
1 MULTIPLE
2 ORANGE
所以问题是:我怎样才能获得所有具有多个值的 ID,与那些只有一个值的 ID 分开?