POSTGRESQL:删除特定字符前的所有字符

use*_*773 1 postgresql replace

在我的数据库中6864#21,我有类似的值1a2b#3598.我试图只提取#之前和之后的部分,所以我会得到类似的东西

col1  | col2
-----------
6864  | 21
1a2b  | 3598

我试过了

REPLACE('123#89', '%#', '')
Run Code Online (Sandbox Code Playgroud)

但这只是导致了123#89.有谁知道我可以这样做的方式?

tho*_*hor 7

或者您可以使用该strpos函数查找该字符的第一次出现,然后substr检索该字符出现后的所有内容:

SELECT substr(str, strpos(str,'#'));
Run Code Online (Sandbox Code Playgroud)

#如果字符串中有多个 ' ,则此方法有效。


Ile*_*tel 6

试试这个:

SELECT split_part('123#23','#',1) AS "COL1",split_part('123#23','#',2) AS "COL2"
Run Code Online (Sandbox Code Playgroud)