我在做
SELECT Name WHERE Id IN (3,4,5,3,7,8,9)
在这种情况下,'3'Id是重复的。 查询会自动排除重复的项目,而对我来说,获取所有项目非常重要。 有没有办法直接在SQL中执行此操作?
答案 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