如何在 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
我有这样的视图:
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