2014-09-17 13:23:48 +02:00

26 lines
796 B
MySQL

-- http://www.williamrobertson.net/documents/one-row.html
--SELECT
-- LTRIM(MAX(SYS_CONNECT_BY_PATH(c,','))
-- KEEP (DENSE_RANK LAST ORDER BY curr),',') AS concatenated
--FROM (
SELECT
CHR(TO_NUMBER(SUBSTR(hex,((level-1)*2)+1,2), 'XX')) c
-- , ROW_NUMBER() OVER (ORDER BY TRUNC((ROWNUM-1)/4)*4+4-MOD(ROWNUM-1,4)) AS curr
-- , ROW_NUMBER() OVER (ORDER BY TRUNC((ROWNUM-1)/4)*4+4-MOD(ROWNUM-1,4)) -1 AS prev
FROM (
SELECT
UPPER(REPLACE(TRANSLATE('&1',',',' '), ' ', '')) hex
FROM dual
)
CONNECT BY
SUBSTR(hex,(level-1)*2,2) IS NOT NULL
-- OR SUBSTR(hex,(level-1)*2,2) != '00'
ORDER BY
TRUNC((ROWNUM-1)/4)*4+4-MOD(ROWNUM-1,4)
--)
--CONNECT BY prev = PRIOR curr AND curr < 10
--START WITH curr = 1
/