如何在 VIEW 上使用 TRIM

How to use TRIM on a VIEW

我有这样的视图:

SELECT * FROM test --will show:
          path        
------------------------
 /downloads/abc-dbc-abcd
 /downloads/dfg-gfd-hjkl
 /downloads/tyu-iti-titk

如何使用 TRIM 仅 select 列路径中字符串的尾部?

在 PostgreSQL 中,我尝试过:

SELECT TRIM('/downloads/' FROM (SELECT * FROM test);
SELECT TRIM('/downloads/' FROM (SELECT path FROM test);

我希望收到 'abc-dbc-abcd' 等输出字符串;与输入相同,但删除了“/downloads/”。我遇到了一个错误...

ERROR: more than one row returned by a subquery used as an expression

试试这个。

SELECT LTRIM(RTRIM(REPLACE(path,'/downloads/','')))

你的错误是因为你在你的 TRIM() 函数中使用了 SubQuery 并且它返回了超过 1 行所以错误显示。

而且我希望您在这里使用 REPLACE() 而不是 TRIM() 函数。来自 Documentation REPLACE :

Replace all occurrences in string of substring from with substring to

欲查询:

SELECT REPLACE(path, '/downloads/', '') from test;

你可以在这里看到Demo