我有一个名为 VALUE 的列,其中包含这样的数据。
00002824/04456/0009639/6410/00001/00001/COL/07/00001/001/0052/01/06/0090139177/WHTG_/000000000000419138
我需要始终提取第9个“/”之后的数据,因此在本例中,我只想检索0052/01/06/0090139177/WHTG_/000000000000419138。
我一直在尝试使用SUBSTRING函数,但似乎不起作用。我可以寻求帮助吗?
SELECT SUBSTRING(S.SCOPE,
CHARINDEX('/', S.SCOPE, CHARINDEX('/', S.SCOPE,
CHARINDEX('/', S.SCOPE, CHARINDEX('/', S.SCOPE,
CHARINDEX('/', S.SCOPE, CHARINDEX('/', S.SCOPE,
CHARINDEX('/', S.SCOPE, CHARINDEX('/', S.SCOPE,
CHARINDEX('/', S.SCOPE) + 1) + 1) + 1) + 1) + 1) + 1) + 1) + 1) + 1) + 1 + 1,
LEN(S.SCOPE))
FROM S.SCOPE
在 Azure SQL 数据库(或 SQL Server 2022 或更高版本)中,您可以使用
use_ordinal
参数来 STRING_SPLIT()
:
SELECT value FROM STRING_SPLIT(@value, '/', 1) WHERE ordinal = 9;