2015-04-02 1 views
1

У меня есть столбец с именем original_filename, который содержит текст. в тексте есть идентификатор файла, который я хочу извлечь. Описание начинается с «error_rows_», как показано ниже. Однако идентификаторы файлов различаются по длине с 999 по 999999, за которыми следует дополнительный текст.sql charindex extract number from string

error_rows_90349_2014-04-10_00-00-00_Transaction-Login_TheHut.gpg 
error_rows_904003_2014-04-10_12-00-00_Transaction-Login_TheHut.gpg 
error_rows_90403_2014-04-10_12-00-00_Transaction-Registration_TheHut.gpg 
error_rows_9060_2014-04-11_00-00-00_Transaction-Login_TheHut.gpg 

Может кто-нибудь помочь мне с sql, чтобы извлечь это. конечный результат должен быть:

Я пытался использовать CHARINDEX withou успеха

+3

"У меня есть пчела n пытаюсь использовать charindex withou success "- Тогда, пожалуйста, покажите свои попытки. –

+0

select left (original_filename, CHARINDEX ('_', original_filename, 12) -1), * from monitor_files где original_filename like 'error_rows_%' – Abbaskhan6428

+0

Нет в комментариях. Обновите свой вопрос. –

ответ

3

Попробуйте это:

DECLARE @Test TABLE (TestData VARCHAR(500)); 
INSERT INTO @Test SELECT 'error_rows_90349_2014-04-10_00-00-00_Transaction-Login_TheHut.gpg'; 
INSERT INTO @Test SELECT 'error_rows_904003_2014-04-10_12-00-00_Transaction-Login_TheHut.gpg'; 
INSERT INTO @Test SELECT 'error_rows_90403_2014-04-10_12-00-00_Transaction-Registration_TheHut.gpg'; 
INSERT INTO @Test SELECT 'error_rows_9060_2014-04-11_00-00-00_Transaction-Login_TheHut.gpg'; 
SELECT 
    *, 
    CONVERT(INT, SUBSTRING(TestData, 12, CHARINDEX('_', TestData, 12) - 12)) 
FROM 
    @Test; 

Результаты:

90349 
904003 
90403 
9060 
+0

Я также использовал этот бит, RIGHT (left (original_filename, CHARINDEX ('_', original_filename, 12) -1), LEN (left (original_filename, CHARINDEX ('_', original_filename, 12) -1)) - CHARINDEX ('_', left (original_filename, CHARINDEX ('_', original_filename, 12) -1), 7)) [FileID] – Abbaskhan6428

 Смежные вопросы

  • Нет связанных вопросов^_^