使用包含重复项的项目列表'SELECT IN'

时间:2013-01-24 21:46:58

标签: sql tsql select

我在做

SELECT Name WHERE Id IN (3,4,5,3,7,8,9)

在这种情况下,'3'Id是重复的。 查询会自动排除重复的项目,而对我来说,获取所有项目非常重要。 有没有办法直接在SQL中执行此操作?

2 个答案:

答案 0 :(得分:3)

查询不排除重复,只是没有要排除的重复项。表中只有一条id为3的记录,包括因为in ()集合中有3,但它不包含两次,因为3在集合中存在两次。

要获得重复项,您必须创建具有重复项的表结果,并将表连接到该表。例如:

select t.Name
from someTable t
inner join (
  select id = 3 union all
  select 4 union all
  select 5 union all
  select 3 union all
  select 7 union all
  select 8 union all
  select 9
) x on x.id = t.id

答案 1 :(得分:1)

试试这个:

SELECT Name FROM Tbl 
    JOIN
     (
       SELECT 3 Id UNION ALL
       SELECT 4 Id UNION ALL
       SELECT 5 Id UNION ALL
       SELECT 3 Id UNION ALL
       SELECT 7 Id UNION ALL
       SELECT 8 Id UNION ALL
       SELECT 9 Id
     ) Tmp
     ON tbl.Id = Tmp.Id