【发布时间】:2019-09-16 09:41:41
【问题描述】:
我需要从 db 表的详细字符串字段中提取一定数量的字符。
sub_str 不起作用,因为它要求位置,在这种情况下,每一行的位置都不同。
split_part 不起作用,因为它将返回分隔符后的完整部分,我们只需要 6 个字符
值示例:预期结果:
461/5-6 srj pt no 101 B up ml to dn ml 101 B
461/5-6 srj pt no107A up ml to up loop line 107A
461/5-6 srj pt no 102 A dn ml to dn loop line 102 A
461/6-7 srj pt no 107 B up loop line up ml 107 B
461/6-7 gf 10 dn loop to dead end 10
461/7-8 srj of ds gf 13 B machine siding to up loop line 13 B
461/7-8 srj gf 10A machine siding to dn loop line 10A
等等。
【问题讨论】:
-
这里的条件是什么?为什么在第 5 个字符串中只需要
10? -
能否详细说明解析逻辑?
-
你真的必须更详细地解释你的模式。我们应该告诉数据库调用什么?例如。为什么结果应该是
10而不是10 dn?目前最合适的模式可能是:第一个空格后的第一个数字字母。但我无法评估这封信的处理方式。如果它是下一个非空白字符,则只给出 A 或 B? -
不相关,但是:Postgres 9.1 是no longer supported,您应该尽快计划升级。
标签: sql postgresql postgresql-9.1