大牛们给点提示或给我个线索?就是想把一个表以不同的形式展示,除了遍历重组还有木有好的办法??

左边的表示是原始表,需要以右表的形式展示,我想到的是遍历左表,然后根据各种繁琐的判断重组出右表,但是这种数据问题该是很普通的,既然是普遍问题就该早有人想出过简单的办法?

倚天杖
浏览 96回答 1
1回答

慕姐4208626

如果是数据库中的表,通过sql进行行列转换 select * from t;     ITEM_ID T_DATE        NUM  ---------- ------ ----------           1 a              11           1 b              12           1 c              13           2 a              14           2 b               5           2 c              20           3 b              30           3 c              40           4 a              50           5 a              60           5 b              70           5 c              80           5 d              90  --sql:     SELECT t.item_id,            MAX(CASE t.t_date WHEN 'a' THEN t.num ELSE NULL END) date_a,            MAX(CASE t.t_date WHEN 'b' THEN t.num ELSE NULL END) date_b,            MAX(CASE t.t_date WHEN 'c' THEN t.num ELSE NULL END) date_c,            MAX(CASE t.t_date WHEN 'd' THEN t.num ELSE NULL END) date_d       FROM t      GROUP BY t.item_id      ORDER BY t.item_id     ;       ITEM_ID     DATE_A     DATE_B     DATE_C     DATE_D  ---------- ---------- ---------- ---------- ----------           1         11         12         13            2         14          5         20            3                    30         40            4         50                                  5         60         70         80         90  如果不是数据库表,就得通过程序判断了,很麻烦`~
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java