Как получить значение после определенного количества точек в результате запроса SQL-сервера
У меня есть один из данных столбца в таблице как:
123.88568.30959300.001.NBIS.07-28-17.XML
Из этих данных я хочу значение после 3-х точек, как 001
, Длина значений будет варьироваться. Я попытался с помощью функции подстроки, но я получаю только первое значение, т.е. 123
,
1 ответ
Это работает для SQL-сервера
DECLARE @str NVARCHAR(MAX)='123.88568.30959300.001.NBIS.07-28-17.XML'
DECLARE @start int = 0
DECLARE @end int = 0
SET @start = CHARINDEX('.', @str, CHARINDEX('.', @str, CHARINDEX('.', @str)+1)+1) +1
SET @end = CHARINDEX('.', @str, @start)
SELECT SUBSTRING(@str, @start, @end - @start)
В MySQL вы можете сделать это.
SET @str = "123.885568.309159300.001.NBIS.07-28-17.XML";
SELECT SUBSTRING_INDEX((SUBSTRING_INDEX(@str, ".", 4)), ".", -1);
дальнейшее чтение
- функция SQL Server CHARINDEX()
- функция SQL Server SUBSTRING() - функция MySQL SUBSTRING_INDEX()