2017-01-13 3 views
0

У меня есть колонка ниже, и я хочу извлечь символ после первого ':' и перед вторым ':', пожалуйста, помогите мне с этим. Для этого я работаю с SQL Server Express. заранее спасибо.Извлечение переменной длины средних символов

BN:wagtz2dp01:DPS 
BN:wagtzdp02:DPS 
BN:wagb2b2dp01:DPS 
BN:wagtzdp20:DPS 
BN:wagtzdp04-LOYALTY:DPS 
BN:wagb2b01:DPS 

Я хочу ниже вывод:

wagtz2dp01 
wagtzdp02 
wagb2b2dp01 
wagtzdp20 
wagtzdp04-LOYALTY 
wagb2b01 
+1

Можете ли вы показать нам, что вы делали до сих пор? Это отличное место для начала: [Как опубликовать вопрос T-SQL на общественном форуме] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on -a-общественный форум /) – Marusyk

ответ

0

Учитывая у вас есть таблица с колонкой [Текст] вы можете попробовать следующее.

select 
    SUBSTR([Text], CHARINDEX(':', [Text]), CHARINDEX(':', [Text],CHARINDEX(':', [Text])+1))) 
FROM table_name 
0

SUBSTRING Использование и CHARINDEX

SELECT Substring(string, Charindex(':', string) + 1, Charindex(':', string, Charindex(':', string) + 1) - Charindex(':', string) - 1) as Middle_chars 
FROM (VALUES ('BN:wagtz2dp01:DPS'), 
       ('BN:wagtzdp02:DPS'), 
       ('BN:wagb2b2dp01:DPS'), 
       ('BN:wagtzdp20:DPS'), 
       ('BN:wagtzdp04-LOYALTY:DPS'), 
       ('BN:wagb2b01:DPS'))tc(string) 

Результат:

╔═══════════════════╗ 
║ Middle_chars ║ 
╠═══════════════════╣ 
║ wagtz2dp01  ║ 
║ wagtzdp02   ║ 
║ wagb2b2dp01  ║ 
║ wagtzdp20   ║ 
║ wagtzdp04-LOYALTY ║ 
║ wagb2b01   ║ 
╚═══════════════════╝ 
Смежные вопросы