我在单元格中有这些数据:
1:0100
2:77042609291929541
3:3100000
4:01
7:12014
11:115
14:11502
18:5999
22:0112
25:015
41:00083121
49:7014
如何将这些值转换为列? E.g。
col_1 |_______col_2_______ | _ col_3 _ |col_4 |col_5 |.....col_127 |col_128 |
_____________________________________________________________________________
0100 |77042609291929541 | 3100000 |.............................
答案 0 :(得分:0)
GROUP_CONCAT
就是您要搜索的内容。
https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
编辑:Oups,快速阅读你的问题,
他们不是简单的做你要求的方式,你可能想重新设计你的桌子。您可能需要遍历您的单元格并使用SUBSTRING_INDEX
首先按\n
拆分,然后切断:
。
我没有在哪里测试,所以它可能不能正常工作,但它只是为了给你一个开始。 (这也只是第一个循环,但内部循环完全相同。)
SET TEST = "1: 0100
2: 77042609291929541
3: 3100000
4: 01
7: 12014
11: 115
14: 11502
18: 5999
22: 0112
25: 015
41: 00083121
49: 7014";
SET len = LENGTH(TEST);
SET startpos = 1;
REPEAT
SET endpos = LOCATE('\n', TEST, startpos);
SET item = SUBSTR(TEST, startpos, endpos - startpos);
IF item <> '' AND item IS NOT NULL THEN
print item;
END IF;
SET startpos = endpos + 1;
UNTIL startpos >= len END REPEAT;