2016-05-16 14:47 GMT+03:00 Charles Clavadetscher <clavadetsc...@swisspug.org >:
> SQL version by Melvin Davidson: > > CREATE TABLE elephant > (row_num integer NOT NULL, > row_dat varchar(30) NOT NULL, > CONSTRAINT elephant_pk PRIMARY KEY (row_num) > ); > > INSERT INTO elephant > (row_num, row_dat) > VALUES > ( 1,'+------------------------+'), > ( 2,'| ____ ______ ___ |'), > ( 3,'| / )/ \/ \ |'), > ( 4,'| ( / __ _\ ) |'), > ( 5,'| \ (/ o) ( o) ) |'), > ( 6,'| \_ (_ ) \ ) _/ |'), > ( 7,'| \ /\_/ \)/ |'), > ( 8,'| \/ <//| |\\> |'), > ( 9,'| _| | |'), > (10,'| \|_/ |'), > (11,'| |'), > (12,'| PostgreSQL 1996-2016 |'), > (13,'| 20 Years of success |'), > (14,'+------------------------+'); > > SELECT row_dat FROM elephant ORDER BY row_num; > I had a bit of fun with this SQL version and came up with this query: WITH src(s) AS ( VALUES ('729472967293732174412176b12173b17111752171927491b1744171b17411217181417211718141734172b191721191724173b1714171912175b17221b1912174b1412178b121715122a172a1b2317d91a172a17f71b1a1912177') ), str AS ( SELECT string_agg(repeat(translate(substr(s, p, 1), '123456789ab', '(/>)<+ o_|\'), ('x'||lpad(substr(s, p+1, 1), 8, '0'))::bit(32)::int), '') line FROM src, generate_series(1, 182, 2) p ) SELECT substr(line, p, 21) slon FROM str, generate_series(1, 189, 21) p; -- Victor Y. Yegorov