pg.ddx.io  pgsql-docs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruce Momjian <bruce@momjian.us>
To: abdulrahim.s@gmail.com
To: pgsql-docs@lists.postgresql.org
Subject: Re: REGEXP_REPLACE : How to use a column value in the regex
Date: Tue, 17 Mar 2020 22:39:50 -0400
Message-ID: <20200318023950.GF17915@momjian.us> (raw)
In-Reply-To: <158192143115.6745.7931715775932027756@wrigleys.postgresql.org>
References: <158192143115.6745.7931715775932027756@wrigleys.postgresql.org>

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 +





view thread (2+ messages)

Message-ID: <20200318023950.GF17915@momjian.us>
Permalink:  ../20200318023950.GF17915@momjian.us/
Also on:    postgresql.org/message-id/20200318023950.GF17915@momjian.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-docs@postgresql.org
  Cc: bruce@momjian.us, abdulrahim.s@gmail.com, pgsql-docs@lists.postgresql.org
  Subject: Re: REGEXP_REPLACE : How to use a column value in the regex
  In-Reply-To: <20200318023950.GF17915@momjian.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox