Thread: create table from regular expressions applied to rows of multiple tables
Readers, Tables contains text: table1 text1, 10 text2, 20 text3, 30 text4, 40 table2 text2, textB 20 text3, textC 30 text5, textD 50 text6, textE 60 text7, textF 70 text8, textG 80 Is it possible to create a new table (table3) using a regular expression (e.g. ^text*) to select rows which are of the same table format as table2: table3 text2, textB 20 text3, textC 30 Thanks in advance.
On Thu, 2012-06-14 at 23:22 +0100, e-letter wrote: > Readers, > > Tables contains text: > > table1 > text1, 10 > text2, 20 > text3, 30 > text4, 40 > > table2 > text2, textB 20 > text3, textC 30 > text5, textD 50 > text6, textE 60 > text7, textF 70 > text8, textG 80 > > Is it possible to create a new table (table3) using a regular > expression (e.g. ^text*) to select rows which are of the same table > format as table2: > > table3 > text2, textB 20 > text3, textC 30 I'm not sure I understand exactly what you're asking. Your example table3 could also be produced by a simple inner join: SELECT table1.col1, table2.col2 FROM table1, table2 WHERE table1.col1 = table2.col1; But postgresql also offers a lot of regular expression functions, too. See: http://www.postgresql.org/docs/9.2/static/functions-string.html http://www.postgresql.org/docs/9.2/static/functions-matching.html Or post a more detailed example to show what you are looking for. Regards, Jeff Davis
On 16/06/2012, Jeff Davis <pgsql@j-davis.com> wrote: > On Thu, 2012-06-14 at 23:22 +0100, e-letter wrote: >> Readers, >> >> Tables contains text: >> >> table1 >> text1, 10 >> text2, 20 >> text3, 30 >> text4, 40 >> >> table2 >> text2, textB 20 >> text3, textC 30 >> text5, textD 50 >> text6, textE 60 >> text7, textF 70 >> text8, textG 80 >> >> Is it possible to create a new table (table3) using a regular >> expression (e.g. ^text*) to select rows which are of the same table >> format as table2: >> >> table3 >> text2, textB 20 >> text3, textC 30 > I have realised my mistake in explanation. The second table should be: table2 text2textB, 20 text3textC, 30 text5textD, 50 text6textE, 60 text7textF, 70 text8textG, 80 So the requirement is to be able use a regular expression to: "select rows that show part of the same string in both tables, but create a new table formatted as table 2". > I'm not sure I understand exactly what you're asking. Your example > table3 could also be produced by a simple inner join: > > SELECT table1.col1, table2.col2 > FROM table1, table2 > WHERE table1.col1 = table2.col1; > I'm guessing I can try this expression above, but adjusting to use a regular expression function?