2016-05-16 14:47 GMT+03:00 Charles Clavadetscher <[email protected]
>:
> 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