Skip to content Skip to sidebar Skip to footer

Convert Rows To Columns With Some Conditions

this is the table id value name 1 2 first 2 2 manger 3 2 islam 4 2 cairo 5 3 frist 6 3 manger 7 3 ahmed 8 3 alex 9 4

Solution 1:

You can try using CASE :

SELECT GROUP_CONCAT((CASEWHEN `id`%4 = 1THEN `name` END)) AS `c1`
     , GROUP_CONCAT((CASEWHEN `id`%4 = 2THEN `name` END)) AS `c2`
     , GROUP_CONCAT((CASEWHEN `id`%4 = 3THEN `name` END)) AS `c3`
     , GROUP_CONCAT((CASEWHEN `id`%4 = 0THEN `name` END)) AS `c4`
FROM `tbl`
GROUPBY `value`

Example

or IF

SELECTGROUP_CONCAT(IF(`id`%4 = 1 ,`name`, null)) AS`c1`
     , GROUP_CONCAT(IF(`id`%4 = 2 ,`name`, null)) AS`c2`
     , GROUP_CONCAT(IF(`id`%4 = 3 ,`name`, null)) AS`c3`
     , GROUP_CONCAT(IF(`id`%4 = 0 ,`name`, null)) AS`c4`FROM`tbl`GROUPBY`value`

SQLFiddle

Post a Comment for "Convert Rows To Columns With Some Conditions"