我有这样的看法:

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

10-08 18:00