太好了。谢谢 11楼的示例。
其实数据库的转置 (PIVOT/UnPIVOT) 和矩阵的转置 (Transposition) 还是有区别的。
数据库的转置至少有一个可以参加聚合运算的数字字段,一般需要三个栏位,着重与数据库的技术;
矩阵的转置可以是任何类型的栏位,更偏向数值运算。
SQL Server/Oracle 有 PIVOT/UnPIVOT 函数,VFP 没有,但 VFP 可以借助于交叉表的技术,比如按照 11 楼的连接的示例,用 VFP 可以这么做:
*!*
创建数据游标
Create Cursor TestRows2Columns ;
(UserName C(10), Subject C(10), Source I)
*!*
--插入测试数据
Insert Into TestRows2Columns Values ('张三', '语文',
60)
Insert Into TestRows2Columns Values ('李四', '数学',
70)
Insert Into TestRows2Columns Values ('王五', '英语',
80)
Insert Into TestRows2Columns Values ('王五', '数学',
75)
Insert Into TestRows2Columns Values ('王五', '语文',
57)
Insert Into TestRows2Columns Values ('李四', '语文',
80)
Insert Into TestRows2Columns Values ('张三', '英语', 100)
*!*
1:静态拼接行转列
Select * From TestRows2Columns ;
Order By UserName, Subject Into Cursor Sys(2015)
Do (_Genxtab) With 'xtab'
Browse Last