我有 SQL Server。 例如我有这样的查询:
select playerid, fullname
from players
where playerid in (123,123,1234,1234,1234)
我如何才能返回结果重复项,我的意思是在这个例子中 - 返回玩家 123 的两次记录和玩家 1234 的 3 次记录。(我有一个很长的选择,其中包含大量玩家 ID)
您似乎正在尝试做的是根据特定
players
值列表从 playerid
表中复制行。
要像您在示例中尝试执行的操作一样,您可以加入值列表,如下所示:
select playerid, fullname
from players p
join (
values(123),(123),(1234),(1234),(1234)
)x(PlayerId) on p.PlayerId = x.PlayerId;
也许这就是你想要的:
SELECT playerid, fullname
FROM players
WHERE playerid IN (123, 123, 1234, 1234, 1234)
GROUP BY playerid, fullname
HAVING COUNT(*) > 1