【发布时间】:2020-10-29 17:54:36
【问题描述】:
首先,它不是我的数据库,我无法更改它:)
这是一个oracle数据库
我有一个包含 2 个 ID 字段代码和子代码的表格:
Table1
ID Code Subcode
1 300 010
2 400 050
3 300 060
我有另一个表,其中有一个代码范围字段,其中有一个逗号分隔的代码列表,但是有些有一个范围。
Table2
ID CodeRange
1 300.020,300.040-300.060
2 300.000-300.020,400.010
3 300.180,400.010-400.100,500.010
我希望做一个可以退出的连接:
Table1.ID Table2.ID
1 2
2 3
3 1
注意: 第一个数字可以在 IE 300.010-400.190 范围内变化
我的方向是将代码和子代码组合成一个数字,例如:
TO_NUMBER(CONCAT(CONCAT(Code, '.'),Subcode))
然后查看将字符串拆分为子字符串(数字)并比较或使用 find_in_set 或类似性质的东西,但我无法到达那里。问题是 CodeRange 有多达 20 个不同的范围,但每个范围的大小各不相同。
任何帮助将不胜感激。 谢谢
【问题讨论】: