Как выбрать текст между каждым вхождением '-' из элементов в таблице - PullRequest
0 голосов
/ 20 апреля 2019

Мне нужно потянуть строку между каждым - каждого номера элемента в таблице.

Пример номера элемента:

T-111459-DK-CAS-DGE-2X8-RT-M
T-1114659-MON-SKL-WT-3X9-GLS
T-111469-DK-PNN-GLZ-3X9-LE-GLS
T-111469-ARL-RIP-M-2X8-DUCR
T-111469-ARS-MAD-L-1X8-NL

Вот то, что я хотел бы видетьиспользуя первый номер элемента в качестве примера:

  • между '-' # 1 и '-' # 2 - (111459) в качестве Продавца
  • между '-' # 2 и '- '# 3 - это (НЗ) в виде строки
  • между' - '# 3 и' - '# 4 - это (CAS) как цвет

1 Ответ

0 голосов
/ 20 апреля 2019

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

declare @str varchar(100) = 'T-1114659-MON-SKL-WT-3X9-GLS' --testing purpose

select substring(substring(@str,3, len(@str)-2),1,charindex('-',substring(@str,3, len(@str)-2),1)-1) as Vendor
,substring(replace(@str,concat('T-',substring(substring(@str,3, len(@str)-2),1,charindex('-',substring(@str,3, len(@str)-2),1)-1),'-'),''),1,charindex('-',replace(@str,concat('T-',substring(substring(@str,3, len(@str)-2),1,charindex('-',substring(@str,3, len(@str)-2),1)-1),'-'),''))-1) as Line
, substring(reverse(substring(reverse(@str),1,len(@str)- len(substring(substring(@str,3, len(@str)-2),1,charindex('-',substring(@str,3, len(@str)-2),1)-1)) - len(substring(replace(@str,concat('T-',substring(substring(@str,3, len(@str)-2),1,charindex('-',substring(@str,3, len(@str)-2),1)-1),'-'),''),1,charindex('-',replace(@str,concat('T-',substring(substring(@str,3, len(@str)-2),1,charindex('-',substring(@str,3, len(@str)-2),1)-1),'-'),''))-1))-4)),1,CHARINDEX('-',reverse(substring(reverse(@str),1,len(@str)- len(substring(substring(@str,3, len(@str)-2),1,charindex('-',substring(@str,3, len(@str)-2),1)-1)) - len(substring(replace(@str,concat('T-',substring(substring(@str,3, len(@str)-2),1,charindex('-',substring(@str,3, len(@str)-2),1)-1),'-'),''),1,charindex('-',replace(@str,concat('T-',substring(substring(@str,3, len(@str)-2),1,charindex('-',substring(@str,3, len(@str)-2),1)-1),'-'),''))-1))-4)))-1) as Color

Замените @str на имя вашего столбца соответственно.Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...