2015-06-30 107 views
0

我有一个17位串行数据集和另一个串行范围数据集。我怎样才能找到哪个序列属于哪个范围?查找范围内的序列号

例如:

id dataset1: 
1 54146000000012930 
2 54146000000013000 
3 54146000000013500 

而且dataset2:

id from    to 
1 54146000000012916 54146000000012935 
2 64143001950000000 64143001950009999 
3 54146000000012936 54146000000013035 
4 64143001950010000 64143001950019999 
5 64143001950020000 64143001950029999 
6 54146000000013436 54146000000013535 

注意的是:

-the第一10位是在范围内是静态的。

- 范围不重叠。

我的基本工具是SPSS和SQL。

谢谢。

+0

而结果应该是? –

+0

是这些17位数字序列类型的varchar? –

+0

- 结果应该是每个序列的范围ID。 – user3833757

回答

2

您可以使用join做到这一点:

select d1.*, d2.* 
from dataset1 d1 join 
    dataset2 d2 
    on d1.serial between d2.fromserial and d2.toserial; 

这是一个非等值连接,这意味着连接条件是不=

0

在SPSS Statistics中,可以使用带有extendedTransforms.vlookupinterval函数的SPSSINC TRANS扩展命令执行此操作。