Re: REGEXP_REPLACE : How to use a column value in the regex
| От | Bruce Momjian |
|---|---|
| Тема | Re: REGEXP_REPLACE : How to use a column value in the regex |
| Дата | |
| Msg-id | 20200318023950.GF17915@momjian.us обсуждение исходный текст |
| Ответ на | REGEXP_REPLACE : How to use a column value in the regex (PG Doc comments form <noreply@postgresql.org>) |
| Список | pgsql-docs |
On Mon, Feb 17, 2020 at 06:37:11AM +0000, PG Doc comments form wrote: > The following documentation comment has been logged on the website: > > Page: https://www.postgresql.org/docs/12/functions-matching.html > Description: > > The documentation doesn't talk about any regex syntax for using a column > from the db in the pattern. There is no mention if this is NOT supported. > All the examples are using static string and none using a DB column > values. > e.g. I have a field *portfolio* which had data like CloudPlatform (Public), > CloudPlatform (Private), MobilePlatfom (Public),.. etc > These values are coming from another table *platformtypes" which has these > values Public, Private, Hybrid...etc. > I want to replace these types from the portfolio names, i was able to do it > using string > *SELECT > Portfolios.PortfolioName,REGEXP_REPLACE(Portfolios.PortfolioName,'(\(Public\))',''), > but I would like to use something like > *REGEXP_REPLACE(Portfolios.PortfolioName,'(\(platformtypes.Name\)),'')* Sure, you can do it ('a' -> 'X'): CREATE TABLE TEST (x text); INSERT INTO test VALUES ('a'); SELECT REGEXP_REPLACE(relname, x, 'X') FROM pg_class, test; regexp_replace ----------------------------------------------- pg_toXst_36526 pg_toXst_36526_index test pg_stXtistic pg_type pg_toXst_2600 You can also combine column names with literal text ('ta' -> 'YY'): SELECT REGEXP_REPLACE(relname, 't' || x, 'YY') FROM pg_class, test; regexp_replace ----------------------------------------------- pg_toast_36526 pg_toast_36526_index test pg_sYYtistic I didn't think it was worth documenting this. -- Bruce Momjian <bruce@momjian.us> https://momjian.us EnterpriseDB https://enterprisedb.com + As you are, so once was I. As I am, so you will be. + + Ancient Roman grave inscription +
В списке pgsql-docs по дате отправления: