Здесь мы можем использовать функции базовой строки. Например, чтобы найти подстроку, содержащуюся в первых двух /
, мы можем попробовать:
WITH yourTable AS (
SELECT '/1064_MyHoldings/ONLINE/Adhoc/Rpt_CompanyCodeElig' AS Path
)
SELECT
CASE WHEN Path LIKE '%/%/%' THEN
SUBSTRING(Path,
CHARINDEX('/', Path) + 1,
CHARINDEX('/', Path, CHARINDEX('/', Path) + 1) - CHARINDEX('/', Path) - 1)
ELSE 'NA' END AS first_component
FROM yourTable;
Демо
Что делаетПриведенная выше логика возможна как для первого компонента пути, так и потенциально для любого компонента: CHARINDEX
имеет необязательный третий параметр, который позволяет нам указать начальную позицию для поиска разделителя /
.
Примечание: Если вы уверены, что первый символ Path
будет всегда быть просто /
, то есть гораздо более простой запрос, который вы можете использовать:
SELECT
CASE WHEN Path LIKE '%/%/%'
THEN SUBSTRING(Path, 2, CHARINDEX('/', Path, 2) - 2)
ELSE 'NA' END AS first_component
FROM yourTable;
Но,это будет работать снова, только если вы знаете, что /
будет первым символом в пути. В противном случае вам понадобится более подробная версия, приведенная выше.