Как подстроку значений в двух столбцах в новый столбец и изменить порядок? - PullRequest
0 голосов
/ 09 октября 2019

У меня есть два столбца с данными varchar. Мне нужно создать новый столбец с новым идентификатором, составленным из обоих столбцов, необходимо изменить порядок и удалить дефис.

ID1            | ID2       |
---------------+-----------
011216         | 313501-16 |
011280         | 313501-18 |
011283         | 313501-19 |

Например, первая запись должна выглядеть следующим образом:

01121616313501

Я попытался добавить новый столбец в мою существующую таблицу:

alter table Customers add CustID INT;

update Customers
    set CustID = cast(SUBSTRING(ID, 5, 4) as numeric);

Ответы [ 2 ]

1 голос
/ 09 октября 2019

Если вы хотите сохранить начальные нули, вы должны определить столбец как VARCHAR, а не INTEGER.

alter table Customers add CustID varchar(15);

update Customers
set CustID = ID1 + right(ID2, 2) + left(ID2, 6);

См. Демоверсию . Результаты:

> ID1    | ID2       | CustID        
> :----- | :-------- | :-------------
> 011216 | 313501-16 | 01121616313501
> 011280 | 313501-18 | 01128018313501
> 011283 | 313501-19 | 01128319313501
0 голосов
/ 09 октября 2019

Попробуйте:

   UPDATE Customers 
   SET CustID = CAST(CONCAT(ID1,SUBSTRING(ID2,1,5),SUBSTRING(ID2,8,2)) as numeric)

Мне кажется, я правильно понял количество символов, но я сам еще не пробовал.

ОБНОВЛЕНИЕ:

Я только что заметил, что вы не запрашиваете цифры после тире, поэтому новый идентификатор будет просто:

   UPDATE Customers SET CustID = CAST(CONCAT(ID1,SUBSTRING(ID2,1,5)) as numeric)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...