从具有分隔符和不同数量元素的列中获取子字符串

Get substring from a column with delimiter and varying number of elements

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

我想编写一个 select 查询,它将 return 我 str2。我上网了,但找不到任何合适的功能。

使用split_part():

SELECT split_part(col, '/', 2) AS result
FROM tbl;

,索引从1开始,

显然,分隔符需要明确。它(/ 在你的例子中)不能是子字符串的一部分。 (除非它位于您提取的内容的右侧,无论如何都会被忽略。)

相关:

  • Split comma separated column data into additional columns