in reply to Re: join column 3 for unique values
in thread join column 3 for unique values

while ( my @row = $sth>fetchrow_array ) {

s/^(\S+ \S+ ).*\K\n((?:.*\n)*)\1(.*\n)/:$3$2/m;

print ;

Tried this, but did not get expected result .. please help

Replies are listed 'Best First'.
Re^3: join column 3 for unique values
by Anonymous Monk on Sep 05, 2016 at 21:48 UTC

    Since I don't have sybase, I'll have to set up a test environment in SQLite instead.

    I had figured you already had the data in memory, but I guess not.

    #!/usr/bin/perl # http://perlmonks.org/?node_id=1171182 use strict; use warnings; use DBI; my $dbfile = '/tmp/db.1171182'; unlink $dbfile; my $db = DBI->connect_cached( "DBI:SQLite(RaiseError=>1,PrintError=>0):$dbfile"); $db->do('create table testing (one text, two text, color text)'); $db->begin_work; while( <DATA> ) { $db->do('insert into testing (one, two, color) values (?, ?, ?)', {}, split ' '); } $db->commit; my $sth = $db->prepare('select one, two, color from testing'); $sth->execute; $_ = ''; while( my @row = $sth->fetchrow_array ) { $_ .= "@row\n"; } 1 while s/^(.*\n)((?:.*\n)*)\K\1//m; 1 while s/^(\S+ \S+ ).*\K\n((?:.*\n)*?)\1(.*\n)/:$3$2/m; print; __DATA__ A1 abc yellow A1 abc yellow B1 xyz green A2 cde red A1 abc green A2 cde yellow A1 abc blue