解析值并根据DB2表中的条件进行拆分

时间:2019-04-01 17:36:06

标签: sql db2

我有2张桌子。 在第一张表Table1中,我有一列称为DOTINCS,其值如下

PARID
1000150004
1152611254
2015620001

现在我还有另一个具有5列的表DTINCS

BORO    BLOCK   LOT
------------------------
1        15       4
1     15261    1254        
2      1562       1 

我要加入这2个表,在DOTINCS中的PARID是10位数字,并且通过删除前导零将其分为DTINCS表中的3列。 BORO是1位数字,5位数和4位数字。

我该如何解析PARID,使Boro为1位数字,而Block I取5位数字并取整数部分,与手数,4位数字和仅整数部分相同,并且排除前导零? 提前致谢。

1 个答案:

答案 0 :(得分:2)

我把它们做成字符串,因为我可以。如果将它们存储为数字,则可以先将它们转换为字符串。

with vals (col1) as (
  values ('1000150004'), 
         ('1152611254'), 
         ('2015620001')
) 
select int(left(col1,1)) boro, 
       int(substr(col1,2,6)) block, 
       int(right(col1, 4)) lot 
from vals;

BORO        BLOCK       LOT        
----------- ----------- -----------
          1          15           4
          1      152611        1254
          2       15620           1

  3 record(s) selected.