I Have this Level 1
table
enter image description here
I want to make query, when the query is execute the order of J1,J2.. J5 is in random order
I have this query
SELECT j1,j2,j3,j4,j5 FROM `level_1` ORDER BY RAND()
but it only randomize the index row, not the inside image result
I want to make this result with random column order, but cant figure it out yet I hope this result
I have a feeling this should be a duplicate but can't find one so..unpivot using union all , allocate a random row number then aggregate
CREATE TABLE T (
ID INT AUTO_INCREMENT PRIMARY KEY, J1 INT,J2 INT,J3 INT,J4 INT,J5 INT);
INSERT INTO T VALUES
(1,1,2,3,4,5),(2,10,20,30,40,50);
WITH CTE AS
(
SELECT ID,1 AS COL, J1 FROM T
UNION ALL
SELECT ID,2 AS COL, J2 FROM T
UNION ALL
SELECT ID,3 AS COL, J3 FROM T
UNION ALL
SELECT ID,4 AS COL, J4 FROM T
UNION ALL
SELECT ID,5 AS COL, J5 FROM T
),
CTE1 AS
(SELECT * ,ROW_NUMBER() OVER (PARTITION BY ID ORDER BY RAND()) RN FROM CTE)
SELECT ID,
MAX(CASE WHEN RN = 1 THEN J1 END) COL1,
MAX(CASE WHEN RN = 2 THEN J1 END) COL2,
MAX(CASE WHEN RN = 3 THEN J1 END) COL3,
MAX(CASE WHEN RN = 4 THEN J1 END) COL4,
MAX(CASE WHEN RN = 5 THEN J1 END) COL5
FROM CTE1
GROUP BY ID
ORDER BY ID;