首页 > 解决方案 > 如何在 IN 子句中每次出现 Id 获取一行?

问题描述

鉴于我有一个重复的 id 列表,我需要获取一些额外的数据来填充 xls 电子表格,我该怎么做。“IN”子句仅返回 1 个匹配项,但每次出现 Id 时我都需要一行。我看着 PIVOT,认为我可以创建一个选择列表,然后进行内部连接。

Select m.Id, m.LegalName, m.OtherId
from MyTable m
where m.OtherId in (1,2,1,1,3,1,4,4,2,1)

标签: tsql

解决方案


您可以使用VALUES子句:

SELECT t.id as OtherId,  m.id, m.LegalName
FROM ( VALUES (1),(2),(1),(1),(3),(1),(4),(4),(2),(1) 
     ) t(ID) INNER JOIN
     MyTable m
     ON m.OtherId = t.id;

推荐阅读