如何在视图上使用TRIM

时间:2018-12-26 03:24:21

标签: postgresql view trim

我有一个这样的视图:

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'等。与输入相同,但删除了“ / downloads /”。我一直遇到错误...

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

2 个答案:

答案 0 :(得分:3)

您的错误是因为您在SubQuery函数中使用了TRIM(),并且该函数返回了多于1行的错误提示。

我更喜欢您在这里使用REPLACE()而不是TRIM()函数。来自Documentation REPLACE

  

将子字符串中的所有匹配项都替换为

对于查询:

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

您可以在这里看到Demo

答案 1 :(得分:1)

尝试一下。

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