现在需要将SQL数据库中的表在select查询显示时以行列交换显示。
例如表Test:
ID A B C
1 aa bb cc
2 dd ee ff
3 gg hh ii
转换成:
ID 1 2 3
A aa dd gg
B bb ee hh
C cc ff ii
但是我的数据库表中数据非常多,有没什么便捷的方法?
现在需要将SQL数据库中的表在select查询显示时以行列交换显示。
例如表Test:
ID A B C
1 aa bb cc
2 dd ee ff
3 gg hh ii
转换成:
ID 1 2 3
A aa dd gg
B bb ee hh
C cc ff ii
但是我的数据库表中数据非常多,有没什么便捷的方法?
楼上的说:行列转换 只能 构造SQL 一句一句插入。
忽悠!靠!假如表是动态的看你插插看!
直接写一个存储过程!
楼上有人写好了!
好端端的,为什么要行列互换?尤其是你的数据量非常多的情况下,情愿在数据库里装十条的数据也不愿建一个有十列的表一个道理。
程序确实需要的话,可以考虑其他功能替代。
行列转换 只能 构造SQL 一句一句插入
遍历所有行 构造 CREATE TABLE的 sql
遍历所有列 insert
只有新创建一张表。
CREATE TABLE t_row_col AS SELECt id, 'c1' cn, c1 cv FROM t_col_row UNIOn ALL SELECt id, 'c2' cn, c2 cv FROM t_col_row UNIOn ALL SELECt id, 'c3' cn, c3 cv FROM t_col_row; SELECt * FROM t_row_col ORDER BY 1,2;
写个程序,把数据提出来写在一个新表上不就OK了吗