У меня есть столбец func_name.У меня есть набор правил для этого столбца func_name для создания func_short_name.
Желаемая логика для func_short_name:
использовать все, что находится справа от '> ';перед каждым последующим знаком «+» или «@» в поле FUNC_NAME
Каждый раз, когда появляется «+» или «@», добавляйте его к func_short_name
Пример:
имя_функции: набор инструментов / matlab / cefclient / + matlab / + internal / getOpenPort.p> getOpenPort
func_short_name: matlab.internal.getOpenPort
Приведенный выше пример добавляет 'matlab' к 'внутреннему', так как за ним следуют '+' и 'getOpenPort', так как он находится справа от '>'
Как мне принять во вниманиекаждый случай «+» или «а».Может ли кто-нибудь помочь мне создать SQL или хранимый процесс?Спасибо!
Я пытался реализовать правила по отдельности, но я не могу сделать рекурсивное добавление при каждом появлении '+' или '@'
select substring(FUNC_NAME,charindex('a',FUNC_NAME)+1,100)
FROM table
select FUNC_NAME,
charindex('@',FUNC_NAME)+1,
charindex('/',FUNC_NAME)-1
from table
select concat(substring(FUNC_NAME,charindex('@',FUNC_NAME)+1,charindex('/',FUNC_NAME)-1),'.',substring(FUNC_NAME,charindex('>',FUNC_NAME)+1,100))
FROM table
func_name: toolbox / matlab /cefclient / + matlab / + internal / getOpenPort.p> getOpenPort
func_short_name: matlab.internal.getOpenPort
Другой пример: имя функции: набор инструментов / символический / символический / @ sym / @ aem /diag.m> diag
func_short_name: sym.aem.diag