Анализ значений и разделение на основе условий в таблицах DB2

#sql #db2

#sql #db2

Вопрос:

У меня есть 2 таблицы. В первой таблице Table1 у меня есть столбец с именем DOTINCS, а значения следующие

 PARID
1000150004
1152611254
2015620001
  

Теперь у меня есть другие таблицы DTINCS с 5 столбцами

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

Я хочу объединить эти 2 таблицы PARID в DOTINCS из 10 цифр и разделить на 3 столбца в таблице DTINCS, удалив начальные нули. BORO состоит из 1 цифры, блока 5 и серии 4 цифр.

Как мне проанализировать PARID таким образом, чтобы Boro равнялся 1 цифре, и заблокировать, я беру 5 цифр и беру их целочисленную часть, и то же самое с lot, 4 цифрами и только целочисленной частью и исключаю начальные нули? заранее спасибо.

Ответ №1:

Я преобразовал их в строки, потому что мог. Если они хранятся в виде чисел, вы можете сначала преобразовать их в строки.

 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.
  

Комментарии:

1. Не должно 150 быть 15 ??

2. Да, ошибка в моей исходной копипасте, которую я пытался исправить вручную. Спасибо, обновлено.