Как использовать TRIM на ВИДЕ - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть такой ВИД:

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 голосов
/ 26 декабря 2018

Ваша ошибка в том, что вы используете SubQuery в функции TRIM(), и она вернула более 1 строки, поэтому ошибка отображается.

И я предпочитаю использовать REPLACE() вместо TRIM()функционировать здесь.С Документация REPLACE:

Заменить все вхождения в строке подстроки с подстроки на

Для запроса:

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

Здесь можно посмотреть Демо

0 голосов
/ 26 декабря 2018

Попробуйте это.

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