SELECT SUBSTR
(
"device" ,
INSTR("device" , '/', -1)+1,
INSTR("device" , '/', -1)
)
FROM Devices
Объяснение:
SUBSTR
: Это функция, которая возвращает часть строки. Требуются следующие 3 аргумента:
Initial string
: Это строка, в которой вам нужно принять участие. В вашем случае это столбец таблицы.
Start Index
: Это индекс начальной строки, в которой должна начинаться ваша часть.
Length
: Это длина части, которую вы хотите вернуть.
Пример
SUBSTR('ABCDEF',3,2) -- Returns 'CD'
Получат 2 символов, начиная с третьей строкой 'ABCDEF'.
Для возврата в ваш случай Initial string
- столбец. Start index
должен быть последним индексом (последним вхождением) символа '/'. Для того, чтобы найти это, мы будем использовать следующую функцию:
INSTR
: Это функция, которая возвращает местоположение строки в строке и имеет следующие аргументы:
Initial string
: Это строка, внутри которой вы хотите найти подстроку
substring
: Это то, что вы ищете.
Start position
: В каком месте первой строки вы начинаете поиск. Если это отрицательное число, вы начинаете с конца строки до начала. В вашем случае мы ищем первое вхождение '/' из конца вашей строки.
Пример
INSTR('Drivers/BacnetIdentifiers/FP VeV 4-01 Training Lobby' , '/', -1) -- Returns 26
Это вернет 27, который является первым вхождением символа «/» от конца строки
LENGTH
: это функция, которая возвращает длину указанная строка.
Пример
LENGTH('ABCDEF') -- Returns 6
Объединяя все эти мы говорим, что мы хотим количества charachters после последнего вхождения «/» в пределах стоимости нашей колонки.
он отлично работает спасибо .... можете ли вы объяснить логику – user3867937
Проверьте мое редактирование для получения дополнительной информации. Я также нашел логическую ошибку, которая при работе была дополнительной болью. –
спасибо за подробное объяснение – user3867937