Я пытаюсь вставить в другой столбец имя базы данных от возвращения столбца TEXT по следующему запросу, который был вставлен в другую таблицу:SQL Server - Выберите строку между двумя известными строками
EXEC master..sp_readerrorlog 0,1,"Database backed up. Database:"
который возвращает
База данных подкреплена. База данных: databaseName, дата создания (время): 2014/06/13 (17:49:54), страницы сбрасываются: 197581, первый LSN: 488: 6298: 36, последний LSN: 488: 6314: 1, количество устройств для сброса : 4, информация об устройстве: ...
После recomandations других сообщений от здесь, я писал:
SUBSTRING([TEXT], LEN(LEFT([TEXT], CHARINDEX (': ', [TEXT]))) + 1, LEN([TEXT]) - LEN(LEFT([TEXT],
CHARINDEX (': ', [TEXT]))) - LEN(RIGHT([TEXT], LEN([TEXT]) - CHARINDEX (', ', [TEXT]))) + 1)
as DatabseName
который возвращает
'Имя_базы_данным,' держа запятую
Я попытался изменить как CHARINDEX parameter '+1'
без успеха.
У кого-нибудь есть идея, как избавиться от этой запятой?
Нет необходимости искать целые слова и с использованием больших смещений, это будет работать так же хорошо, и немного короче: 'SUBSTRING ([TEXT], CHARINDEX (':', [TEXT]) +- , CHARINDEX (',', [TEXT]) - (CHARINDEX (':', [TEXT]) + 2)) '+1 в любом случае – jpw
Я тоже не работал. Мой коллега предлагает: «заменить (SUBSTRING ([TEXT], LEN (LEFT ([TEXT], CHARINDEX (':', [TEXT]))) + 2, LEN ([TEXT]) - LEN (LEFT ([ TEXT], CHARINDEX (':', [TEXT]))) - LEN (RIGHT ([TEXT], LEN ([TEXT]) - CHARINDEX (',', [TEXT]))) - 0), ',' , '') ', который работает. Но мне все же хотелось бы знать, возможно ли это просто использовать 'Подстрока' и' Charindex'. – Kukah