lovinlife045 Ответов: 2

Извлеките данные из столбца SQL varchar...


У меня есть SQL таблица с несколькими столбцами
Столбец [INI"] - это "varchar", из которого я хотел бы извлечь данные
Вот пример значения [INI]
\\центра.ком\ФС\приложения\НПС\шко\стандартные\XML фалы\ФЛ\FL в МК\FL в МК 01.xml
Как я могу извлечь данные, следующие за последним"\"?
SELECT TOP (1000) tests.id
      ,[INI]
      ,[App]
      ,[SubApp]
      ,[Environment]
      ,[Comment]
      ,[Heartbeat]
      ,[UpdatedBy]
      ,[Timestamp]
  FROM [QATestData].[dbo].[Tests] tests


Что я уже пробовал:

Я уже пробовал
(select value from STRING_SPLIT(ini,'\') ) as testcasename

CHill60

Мы не можем использовать вашу ссылку. Разместите образец файла здесь

lovinlife045

Извините за путаницу. Это не связующее звено.
Это данные в столбце [INI]

Вот пример данных в столбце [INI] :
\\центра.ком\ФС\приложения\НПС\шко\стандартные\XML фалы\ФЛ\FL в МК\FL в МК 01.xml

В данном случае я хочу извлечь все данные, следующие за последним"\"
"FL IN MC 01.XML"

Спасибо

CHill60

:смех: извините за недоразумение. Рад, что у тебя есть решение

2 Ответов

Рейтинг:
18

littleGreenDude

Предполагая, что SQL server, вы можете сделать следующее:

выберите реверс(подстрока(реверс(Ини), 1, функция charindex('\', обратный(Ини))-1))
Из [QATestData].[dbo].[Тесты] Тесты


lovinlife045

Спасибо. Ваше решение сработало !!!

Рейтинг:
10

MadMyche

Вам нужно будет использовать расщеплять функция в основном создает массив, а затем выполняет эту функцию, получая значение для последнего элемента в массиве.

Я не могу дать вам конкретный код для этого, так как вы не указали, какой тип SQL вы используете(MySql, Sql Server и др.). Кроме того, не все версии какого-либо конкретного типа имеют эту встроенную функцию (например, Sql Server не поддерживался до 2016 года)