【问题标题】:Find serial in a range在一个范围内查找序列
【发布时间】:2015-06-30 12:02:39
【问题描述】:

我有一个 17 位序列的数据集和另一个序列范围的数据集。如何找到哪个序列属于哪个范围?

例如:

id  dataset1:
1   54146000000012930
2   54146000000013000
3   54146000000013500

和数据集2:

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

注意:

-前 10 位数字在范围内是静态的。

-范围不重叠。

我的基本工具是 SPSS 和 SQL。

谢谢。

【问题讨论】:

  • 结果应该是?
  • 这些 17 位序列号是 varchar 类型吗?
  • - 结果应该是每个序列的范围ID。
  • 是的。数据类型是 varchar

标签: sql database spss


【解决方案1】:

您可以使用join

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

这是一个非等值连接,表示连接条件不是=

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      相关资源
      最近更新 更多