#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. Да, ошибка в моей исходной копипасте, которую я пытался исправить вручную. Спасибо, обновлено.