给出了一个用户提供的数字列表,我将其称为
myList
,我想找出哪些与表匹配
MasterList
,以及哪些为空(不匹配)
因此,给定db内容
MasterList
----------
ID Number
1 3333333
2 4444444
3 5555555
如果
myList公司
是
['1111111','2222222','3333333','4444444']
我想要以下输出:
1111111, null
2222222, null
3333333, 1
4444444, 2
我尝试过的想法:
当然,这只会产生匹配的结果。
select Number, ID
from MasterList
where Number in('1111111','2222222','3333333','4444444')
我的下一个想法没有什么帮助:
select temp.Number, master.Number
from MasterList master
left join MasterList temp
on master.id=temp.id
and temp.Number in('1111111','2222222','3333333','4444444')
如果列表本身是一个表
temp
,获得所需的输出将是微不足道的:
select temp.number, master.id
from temp -- (ie, the list, where temp.number is the given list)
left join master on master.number=temp.number
-- optional where
where temp.number in('1111111','2222222','3333333','4444444')
这一想法从未实现:
select temp.number, master.id
from (select '1111111','2222222','3333333','4444444') temp
left join master on master.number on....
在没有临时表的情况下可以做到这一点吗?
如果没有,如何在中创建临时表
DB2
?(如果您已经知道如何操作,IBM文档会很有帮助…)