提问人:user22338597 提问时间:8/4/2023 最后编辑:jarlhuser22338597 更新时间:8/4/2023 访问量:45
在 SQL 中将文本放在第二个特殊字符之前
Bring text before the second special character in SQL
问:
我有一个专栏,看起来像这样:
ss pullover jaq:rwbwht:40
ribbed cttn 5608:navy:10.5
shorts:black:xl
s:pigment wash mushroom:l
t tote bag:mushroom:1size
我需要在第二个之前提取字符串,以便它看起来像这样::
ss pullover jaq:rwbwht
ribbed cttn 5608:navy
shorts:black
s:pigment wash mushroom
t tote bag:mushroom
我该怎么做?
我尝试了 和 函数,但它们只将文本带到第一个,直到第二个.RIGHT
substring
:
:
答:
0赞
Koushik Roy
8/4/2023
#1
一种方法是用于基于字符串拆分字符串,然后再次连接它们。
或者第二种方法是使用带有 regexp_instr() 的子字符串,如下所示 -split_part()
:
select split_part('ss pullover jaq:rwbwht:40',':',1) ||':' || split_part('ss pullover jaq:rwbwht:40',':',2) option1,
substring('ss pullover jaq:rwbwht:40',1,regexp_instr('ss pullover jaq:rwbwht:40',':',1,2)-1) option2
0赞
Alexander Klimenko
8/4/2023
#2
使用正则表达式的另一个选项:
SELECT REGEXP_SUBSTR(<YOUR_COLUMN>, '^[^:]*:[^:]*') FROM <YOUR_TABLE>;
评论