我的数据库中有6864#21
,1a2b#3598
等值。我试图只提取#之前和之后的部分,所以我会得到像
col1 | col2 ----------- 6864 | 21 1a2b | 3598
我试过
REPLACE('123#89', '%#', '')
但这仅仅导致123#89。有谁知道我能这样做的方法吗?
答案 0 :(得分:5)
试试这个:
SELECT split_part('123#23','#',1) AS "COL1",split_part('123#23','#',2) AS "COL2"
答案 1 :(得分:0)
select (string_to_array(the_column, '#'))[1] as col1,
(string_to_array(the_column, '#'))[2] as col2
from the_table
答案 2 :(得分:0)
或者您可以使用strpos
函数查找字符的第一个匹配项,然后使用substr
检索该字符后的所有内容:
SELECT substr(str, strpos(str,'#'));
如果字符串中有多个#
,则此方法有效。