如何选择SQL数据库表中带有分隔值的字段中的第n个项目?

San*_*anz 5 sql sql-server split delimiter-separated-values

因此,我们得到了一个带有分隔值的代码字段,例如“a_bb_ccc_dddd”,并且需要第三个值,即“ccc”。

我实际上获得了前 N 名的第一名。

DECLARE @table1 TABLE (path VARCHAR(MAX));

INSERT INTO @table1 (path) 
VALUES ('a_bb_ccc_dddd'), ('111_222_333_444'), ('')

SELECT
    path, 
    (SELECT TOP 1 value 
     FROM STRING_SPLIT (path, '_')) AS part
FROM
    @table1
Run Code Online (Sandbox Code Playgroud)

小智 2

这个怎么样:

SELECT path, value
FROM @table1
OUTER APPLY (
  SELECT value
  FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)), value 
    FROM string_split(path, '_')
    ) split (rn, value)
  WHERE rn = 3
) splitval;
Run Code Online (Sandbox Code Playgroud)