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

Reply via email to