我有这样的看法:
SELECT * FROM test --will show:
path
------------------------
/downloads/abc-dbc-abcd
/downloads/dfg-gfd-hjkl
/downloads/tyu-iti-titk
如何使用TRIM只选择列路径中字符串的尾部?
在PostgreSQL中,我尝试过:
SELECT TRIM('/downloads/' FROM (SELECT * FROM test);
SELECT TRIM('/downloads/' FROM (SELECT path FROM test);
我希望只接收“abc dbc abcd”等输出字符串;与input相同,但删除了“/downloads/”。我有个错误。。。
ERROR: more than one row returned by a subquery used as an expression
最佳答案
您的错误是因为您在SubQuery
函数中使用了TRIM()
,并且它返回了多行,因此显示了错误。
我更喜欢在这里使用REPLACE()
函数,而不是TRIM()
函数。从Documentation REPLACE
:
用substring to替换子字符串from的字符串中的所有匹配项
对于查询:
SELECT REPLACE(path, '/downloads/', '') from test;
您可以在这里看到Demo