从带有定界符和数量可变的元素的列中获取子字符串

Jay*_*ant 2 postgresql substring pattern-matching

我的Postgres表中的一列具有varchar以下格式的值:'str1/str2''str1/str2/str3'其中str代表任何字符串。

我想写一个选择查询,它将返回我str2。我冲浪了,但是找不到任何适当的功能。

Erw*_*ter 6

用途split_part()

SELECT split_part(col, '/', 2) AS result
FROM tbl;
Run Code Online (Sandbox Code Playgroud)

正如Victoria所指出的那样,索引是从1开始的,

显然,定界符必须是明确的。它(/在您的示例中)不能是子字符串的一部分。(除非那是您提取的内容的右边,否则无论如何都会被忽略。)

有关:

  • 注意:不是 0 索引:1 = 分隔字段中的第一个元素。 (2认同)